我需要在我的代码上使用3D矩阵/数组结构,现在我依靠Eigen来处理我的矩阵和向量.
现在我正在使用new创建一个3D结构:
MatrixXd* cube= new MatrixXd[60];
for (int i; i<60; i++) cube[i]=MatrixXd(60,60);
并且为了获得价值:
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);
//...
}
}
}
但是,现在这段代码的速度非常慢,这让我觉得这可能不是最有效的方法.还有其他选择吗?
解决方法:
虽然没有问题,但当问到这个问题时,Eigen现在已经提供了一个Tensor模块.它仍处于“不支持”阶段(意味着API可能会发生变化),但基本功能应该基本稳定.文档分散在here和here.