C++11x 和 Eigen 库
C++11x and Eigen library
我想编译一个程序,我在 Eigen 中使用
初始化一个复数矩阵 MatrixXcd
MatrixXcd M;
M.resize(length,length);
M(i,j).real()=f(i,j)
M(i,j).imag()=f(i,j)
其中 f(i,j) 是 i,j 的 std::complex<double>
类型的某个函数。一切正常,除非我使用我确实需要的 -std=c++0x
编译器选项。使用此选项时,出现错误:
error: lvalue required as left operand of assignment
上面这行代码,哪里出了问题?
改为:
M(i, j) = f(i, j);
这已经只分配了实部。
如果要给定实部和虚部的一般复数,请使用例如
M(i, j) = std::complex<double>(f(i, j), g(i, j));
我想编译一个程序,我在 Eigen 中使用
初始化一个复数矩阵MatrixXcd
MatrixXcd M;
M.resize(length,length);
M(i,j).real()=f(i,j)
M(i,j).imag()=f(i,j)
其中 f(i,j) 是 i,j 的 std::complex<double>
类型的某个函数。一切正常,除非我使用我确实需要的 -std=c++0x
编译器选项。使用此选项时,出现错误:
error: lvalue required as left operand of assignment
上面这行代码,哪里出了问题?
改为:
M(i, j) = f(i, j);
这已经只分配了实部。
如果要给定实部和虚部的一般复数,请使用例如
M(i, j) = std::complex<double>(f(i, j), g(i, j));