带有矩阵的标量积的 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 小矩阵对齐。
我正在尝试用循环填充 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 小矩阵对齐。