如何将整行写入Armadillo矩阵?

问题描述 投票:0回答:1

在Armadillo中我想将许多行向量保存到矩阵中。我可以用以下内容更改矩阵A的条目:

arma:mat A(10,10, 0); // create a 10x10 matrix filled with zeros.
A(i,j) = 1.23; // set element at positon (i,j) to 1.23.

有没有办法一次改变矩阵的整行?例如。:

arma::rowvec V(10); // a row vector of length 10.
A(i) = V; //write entire rowvector V into matrix at position i.

我知道我可以使用A.insert_rows(i,V);将我的Vector V插入矩阵,但我想替换它。在我的代码中,我已经知道矩阵的维度。我也可以将行追加到和,但我在某处读到代码运行得更快,如果我不改变矩阵的大小而是用正确的大小初始化它。如果有人感兴趣我正在编写一个解决微分方程的程序,我需要将系统状态(向量)写入数组(Armadillo矩阵)以节省时间序列。

我以为我可以使用犰狳矩阵,因为我的系统状态是犰狳矢量。我在Armadillo的文档中环顾四周,但我找不到合适的方法。 (正确的意思是除了编写循环迭代我的向量的所有条目之外的任何东西 - 我知道C ++在内部做了类似的事情,但我的猜测是使用armadillo函数会更快)。

c++ armadillo
1个回答
1
投票

使用submatrix views。一些例子:

arma::mat A(10,10, arma::fill::zeros);
arma::rowvec V(10, arma::fill::randu);

A.row(2) = V;
A.row(3).ones();
A.row(4).randu();
A.row(5).fill(123.4);
© www.soinside.com 2019 - 2024. All rights reserved.