2
以下のコードが正しいようだ:EigenのMatrixXdでFFTを実行するには?
#include <Eigen/Core>
#include <unsupported/Eigen/FFT>
int main()
{
Eigen::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;
}
}
しかし、これはコンパイル時に、これはエラーを持って、私はMatrixXdにマトリックスを変更すると、コンパイル時に行列のサイズを指定する必要があります。 MatrixXd上でFFTを実行する方法を知りたいので、実行時に行列サイズを指定することができます。
ありがとうございました! – alexxx