我成功地与Eigen合作,我试图了解复杂数字的一些细节。
这很好用(Visual Studio)
kx.real()(0, 0) = 1.0;
这会抛出编译器错误
kz_r.imag()(0, ii) =1.0
我得到的错误是:
严重级代码描述项目文件行抑制状态 错误C2440'返回':无法转换为' double'到' double&' \ eigen \ src \ core \ mathfunctions.h 919
答案 0 :(得分:3)
只需使用std::complex<double>
(或float
):
std::complex<double> c(1,1);
Eigen::MatrixXd R1; R1.setRandom(2,2);
Eigen::MatrixXcd C1 = c*R1; // multiply complex*real
Eigen::MatrixXcd C2 = c*C1; // complex scalar times complex matrix
C1(0,0) = c; // assign complex value.