犰狳复矩阵上第 2 个暗淡的 1D fft

Posted

技术标签:

【中文标题】犰狳复矩阵上第 2 个暗淡的 1D fft【英文标题】:1D fft on 2nd dim on Armadillo complex matrix 【发布时间】:2019-08-12 18:02:31 【问题描述】:

我需要计算 cx_mat 在它的第二维中的一维 fft。所以说我有这个矩阵:

cx_mat A(randu(5,10),randu(5,10));

MATLAB 版本如下所示:

A_fft=fft(A,[],2);

我将如何在犰狳中解决这个问题?

我试图尽可能快地保持这一点,因此我认为在列中运行的 for 循环不是最佳选择。

然后我看到了.each_col 属性并尝试了

cx_mat A_fft=A.each_col([](vec& a)fft(a););

但这不会编译。也许这是正确的,但我的语法是错误的

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您需要有一个复数向量作为 lambda 函数中的参数: cx_mat A_fft=A.each_col([](cx_vec& a)fft(a););

【讨论】:

如此简单!谢谢! 不太对劲。这里 .each_col() 带有 lambda 函数对矩阵 A 进行就地操作。也就是说,A 被修改了。

以上是关于犰狳复矩阵上第 2 个暗淡的 1D fft的主要内容,如果未能解决你的问题,请参考以下文章

如何在犰狳中按元素划分2个稀疏矩阵?

犰狳 C++ 矩阵线程安全吗

C++犰狳稀疏矩阵类型转换

C++:犰狳列矩阵初始化不明确

如何在犰狳中更新稀疏矩阵的值

如何在犰狳 C++ 中修改矩阵中的某些列