在MATLAB中,我可以选择一个分散的子矩阵,例如:
A = [1 ,2 ,3;4,5,6;7,8,9]
A([1,3],[1,3]) = [1,3;7,9]
使用Eigen是否有聪明的方法?
最佳答案
不是以一种通用的方式,但是如果您的访问模式是常规的,则可以使用带有适当步幅的Eigen::Map:
#include <Eigen/Core>
#include <iostream>
int main(int argc, char *argv[])
{
Eigen::Matrix3d A;
A << 1, 2, 3, 4, 5, 6, 7, 8, 9;
std::cout << Eigen::Map<Eigen::Matrix2d, 0, Eigen::Stride<6, 2> >(A.data());
return 0;
}
看到
http://eigen.tuxfamily.org/dox/classEigen_1_1Stride.html
关于c++ - Eigen :矩阵中的离散元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35820736/