犰狳 - 从列向量中的值填充矩阵

时间:2016-06-13 15:30:56

标签: c++ matrix vector armadillo column-major-order

我想在arma::mat大小为M x N和大小为arma::vec的MN(这是矩阵的列主线性化)之间来回传递。

我可以使用arma::vectorise轻松地从矩阵转向矢量,即

arma::vec vector = arma::vectorise(matrix);

然而,我找不到一个简单的方法去反过来。我想在矩阵的第一列中插入向量的前M个值,在第二列中插入第二个M值,依此类推。有没有办法有效地这样做?

1 个答案:

答案 0 :(得分:5)

使用advanced constructors

使矩阵中的内存与向量共享
mat X(4,5);

vec V(X.memptr(), X.n_elem, false, false);

// changing elements in X or V will affect both

只要您的操作不会导致别名或更改XV的大小,这两个对象就会继续共享内存。