在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所必需的。我是本征库的新手。