调用matrix.array()后将矩阵保存为数组格式
Save the matrix in array format after calling matrix.array()
我从matlab切换到c++来编写CFD求解器。我用的是本征线性代数库。它有很多用于矩阵和向量操作的函数,但缺乏将矩阵转换为数组的函数。
MatrixXf m(2,2);
m<<1,2,3,4;
ArrayXf a(4);
a=m.array();
这是我对
的解 m.resize(4,1);
a=m;
我不喜欢这样,因为m
被改变了,这是我不想要的,因为m
是一个非常大的矩阵。
如果你不想复制这些值,你可以使用Eigen::Map
:
MatrixXf m(2,2);
m<<1,2,3,4;
Eigen::Map<ArrayXf> mp(m.data(), m.size());
您可以使用mp
作为ArrayXf
。注意,这指向原始的m
矩阵,即。对mp
的更改将出现在m
中。如果你想要一个副本,你可以使用:
ArrayXf a = mp;
您可以编写自己的函数并逐个值复制。
MatrixXf matrix(2,2);
int cols=matrix.cols();
int rows=matrix.rows;
ArrayXf array(cols*rows);
for(int c=0;c<cols;c++)
for(int r=0;r<rows;r++)
array(c*rows+r)=matrix(c,r);
相关文章:
- 保存/加载大量短数组到二进制文件
- 如何在数组和向量 c++ 中存储和保存输入
- 2D 数组,某些单元格保存特定数据
- 如何在c++中将字符串中的所有数字保存到多维数组中
- 将值更改为 c++ 的数组并保存文件
- 数组不保存初始化值
- 按顺序遍历 AVL 树,将值保存在数组中
- 将 QImage 保存到字节数组
- 将特征数组行保存在变量中
- 将 JPG 编码数组从 ROS sensor_msgs/压缩图像保存到 roscpp 中的文件
- C++ 如何动态保存大量数组?
- 在 tensorflow c++ api 中,如何从张量中保存图片或数组
- 获取C++中的多个输入文件并将其保存在数组中
- 生成唯一的随机字符并将其保存在数组中
- 如何创建一个动态数组,该数组可以保存从C++中派生的同一基类的所有不同对象
- 如何在C++中保存动态数组中的值
- 如何将外部文件中的数据保存到 2D 数组中?(C++)
- GoogleMock SaveArg 用于保存数组?编译器抛出错误,我还没有看到一个好的解决方案
- 保存数组地址的指针的地址是相同的
- 在armadillo中保存数组(立方体)以便稍后在R中加载的最佳格式