如何循环移动二维特征数组?

时间:2018-09-11 15:09:55

标签: c++ eigen eigen3

在2D本征数组上执行循环移位的最佳方法(我是指最快和/或最有效的方法)是什么?

例如,我想向右循环移动ArrayXXd。我想我可以做以下事情:

circShiftRight (ArrayXXd &arraytoshift)
{
    Matrix<double, Dynamic, 1> tmp;

    tmp = arraytoshift.col (arraytoshift.cols ()-1);

    arraytoshift.rightCols(_radForceVelocity.cols()-1) = arraytoshift.leftCols(_radForceVelocity.cols()-1).eval ();

    arraytoshift.col(0) = tmp;
}

但是这可以工作吗,还有更好的方法吗?我认为.eval()是避免Aliasing所必需的。我是本征库的新手。

0 个答案:

没有答案