带有矩阵的标量积的 for 循环

for loop for scalar product with a matrix

我正在尝试用循环填充 10 x 1500 矩阵。 我必须用 150 个 10 x 10 的小矩阵来填充该矩阵。我试图用双循环来实现它,但没有成功。我的问题是每个 10*10 矩阵都是标量积的结果。 一开始似乎很容易,但后来我意识到我无法用 150 个 10*10 小矩阵计算出 10 x 1500 矩阵的大小。 这是我所做的:

es_var 是一个 1 x 150 矩阵,我将其转换为向量以简化标量积(至少在我看来)。 diax 是一个 10 x 10 矩阵。 我想将每个 diag 10*10 矩阵的 es_var 向量的每个值相乘。 我遇到了麻烦,因为我每次都无法输入 R 来填充 10 行。因此最后我得到一个 10*1500 矩阵,但它是重复 150 次的相同 10*10 时间矩阵。

这是我的代码

es_var1 = as.vector(es_var)

v = matrix(0, 10, 10*N)

for (i in 1:N){
      v[,] = es_var1[i] * diax
}

有人可以帮忙解决这个问题吗?我花了一整天的时间来尝试。我需要在不使用构建函数的情况下这样做,因为这是我必须实现的大型数学演示的一小部分。

如果我正确理解您的要求,您可以使用以下行来完成此操作:

v <- matrix(diax,10,1500)*rep(es_var1,each=100);

这将构建一个 10x1500 矩阵,将 10x10 diax 矩阵作为初始值,充分循环以覆盖完整的 10x1500 大小。然后,要应用 es_var1 乘法,您可以将其每个元素复制 100 次,以便它们在向量化乘法期间自然地与每个连续的 10x10 小矩阵对齐。