Armadillo - 从列向量中的值填充矩阵
Armadillo - fill a matrix from the values in a column vector
我想在大小为 M x N 的 arma::mat
和大小为 MN 的 arma::vec
之间来回切换(这是矩阵的列主要线性化)。
我可以使用 arma::vectorise
轻松地从矩阵转到向量,即
arma::vec vector = arma::vectorise(matrix);
但是,我找不到一个简单的方法来反过来。我想在矩阵的第一列中插入向量的前 M 个值,在第二列中插入第二个 M 值,依此类推。有没有办法有效地做到这一点?
使矩阵中的内存与向量共享
mat X(4,5);
vec V(X.memptr(), X.n_elem, false, false);
// changing elements in X or V will affect both
只要您的操作不会导致别名或更改 X
或 V
的大小,这两个对象将继续共享内存。
我想在大小为 M x N 的 arma::mat
和大小为 MN 的 arma::vec
之间来回切换(这是矩阵的列主要线性化)。
我可以使用 arma::vectorise
轻松地从矩阵转到向量,即
arma::vec vector = arma::vectorise(matrix);
但是,我找不到一个简单的方法来反过来。我想在矩阵的第一列中插入向量的前 M 个值,在第二列中插入第二个 M 值,依此类推。有没有办法有效地做到这一点?
mat X(4,5);
vec V(X.memptr(), X.n_elem, false, false);
// changing elements in X or V will affect both
只要您的操作不会导致别名或更改 X
或 V
的大小,这两个对象将继续共享内存。