Joh*_*Doe 3 c++ fft eigen eigen3
我是Eigen图书馆的新手.我想计算特征矩阵的FFT.但是,我尝试这样做表明不支持的本征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);
}
Run Code Online (Sandbox Code Playgroud)
这可以实现吗?欢迎任何其他建议.从matlab迁移到Eigen我花了很多自我说服力,除非不可避免,否则我宁愿不使用不同的库.谢谢.
小智 6
不幸的是,这是不对的;
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5328 次 |
| 最近记录: |