我是 Eigen 图书馆的新手。我想计算特征矩阵的 FFT。然而,我的尝试表明,不受支持的 Eigen FFT 模块不能与 MatrixXf 一起使用。我想要完成类似的事情:
#include <eigen3/unsupported/Eigen/FFT>
#include<Eigen/Dense>
#include<iostream>
using namespace std;
using namespace Eigen;
int main(){
MatrixXf A = MatrixXf::Random(3,10);
FFT<float> fft;
MatrixXf B;
fft.fwd(B,A);
}
这是可以实现的吗?欢迎任何其他建议。我花了很多时间说服自己才从 matlab 迁移到 Eigen,除非不可避免,否则我宁愿不使用不同的库。谢谢。
不幸的是,这是不正确的;
1)你必须迭代输入矩阵的行(实数)
2)然后迭代输出矩阵(复数)的列
FFT<float> fft;
Eigen::Matrix<float, dim_x, dim_y> in = setMatrix();
Eigen::Matrix<complex<float>, dim_x, dim_y> out;
for (int k = 0; k < in.rows(); k++) {
Eigen::Matrix<complex<float>, dim_x, 1> tmpOut;
fft.fwd(tmpOut, in.row(k));
out.row(k) = tmpOut;
}
for (int k = 0; k < in.cols(); k++) {
Eigen::Matrix<complex<float>, 1, dim_y> tmpOut;
fft.fwd(tmpOut, out.col(k));
out.col(k) = tmpOut;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)