c – 使用特征矩阵构建3D结构的最有效选项

我需要在我的代码上使用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可能会发生变化),但基本功能应该基本稳定.文档分散在herehere.

上一篇:c – 为什么Eigen的Cholesky在Linux上的分解比在Windows上快得多?


下一篇:Eigen对齐(加速)方案