其他分享
首页 > 其他分享> > c – 犰狳 – 从列向量中的值填充矩阵

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

作者:互联网

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

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

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

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

解决方法:

使用advanced constructors使矩阵中的内存与向量共享:

mat X(4,5);

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

// changing elements in X or V will affect both

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

标签:c,matrix,vector,armadillo,column-major-order
来源: https://codeday.me/bug/20190829/1757793.html