Armadillo - 初始化矩阵并用值填充矩阵

Armadillo - initialize a matrix and fill matrix with values

我想按列填充矩阵。我有以下 numpy 代码,我很难将其转换为 C++ Armadillo。

# numpy code
m = np.zeros((nrows, nrows))
# fill a matrix of lags
for i in range(0, nrows):
    r = np.roll(vec_v, i)
    m[:, i] = r

其中 vec_v 是单个列向量,nrows 是该列向量中的行数。

这是我的犰狳尝试

# armadillo conversion
mat m(nrows, nrows); m.zeroes();

for(int i = 0; i < nrows; i++){
  vec r = shift(vec_v, i)
  m.col(i).fill(r);
}

初始化矩阵然后按列填充值的推荐方法是什么。

= 运算符应该在这里工作。

mat m(nrows, nrows); m.zeros();

for(int i = 0; i < nrows; i++){
  vec r = shift(vec_v, i);
  m.col(i) = r;
}

可以简化矩阵初始化,避免生成临时r向量,如下所示。

mat m(nrows, nrows, fill::zeros);

for(int i = 0; i < nrows; i++){
  m.col(i) = shift(vec_v, i);
}