我的代码需要一个 3D 矩阵/数组结构,现在我的矩阵和向量都依赖于 Eigen。
现在我正在使用new以下方法创建 3D 结构:
MatrixXd* cube= new MatrixXd[60];
for (int i; i<60; i++) cube[i]=MatrixXd(60,60);
Run Code Online (Sandbox Code Playgroud)
和访问值:
double val;
MatrixXd pos;
for (int i; i<60; i++){
pos=cube[i];
for (int j; j<60; j++){
for (int k; k<60; k++){
val=pos(j,k);
//...
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,现在这部分代码的速度非常慢,这让我相信这可能不是最有效的方法。有没有其他选择?
我Eigen::Tensor<std::complex, 2>对张量更大的张量进行了一些操作。是否有一种简单的方法可以Eigen::MatrixXcf从此Tensor对象创建,还是必须手动复制值?