Matlab 不使用循环将3x3矩阵乘以3nx1数组
在我的代码中,我必须将矩阵Matlab 不使用循环将3x3矩阵乘以3nx1数组,matlab,matrix-multiplication,Matlab,Matrix Multiplication,在我的代码中,我必须将矩阵a(维度3x3)乘以向量b1(维度3x1),得到C。所以C=A*b1。现在,我需要重复这个过程n次,保持A固定,并每次更新b到不同的(3x1)向量。这可以使用循环来完成,但我想避免它以节省计算成本。相反,我想做矩阵和向量积。有什么想法吗?你需要建立一个b向量矩阵,例如n等于4: bMat = [b1 b2 b3 b4]; 然后: 在这种情况下,提供尺寸为3x4的解决方案。如果您希望以长度为3n×1的向量形式求解,请执行以下操作: C = C(:); 我们能为没有循环
a
(维度3x3)乘以向量b1
(维度3x1),得到C
。所以C=A*b1
。现在,我需要重复这个过程n
次,保持A
固定,并每次更新b
到不同的(3x1)向量。这可以使用循环来完成,但我想避免它以节省计算成本。相反,我想做矩阵和向量积。有什么想法吗?你需要建立一个b
向量矩阵,例如n
等于4:
bMat = [b1 b2 b3 b4];
然后:
在这种情况下,提供尺寸为3x4的解决方案。如果您希望以长度为3n×1的向量形式求解,请执行以下操作:
C = C(:);
我们能为没有循环的任意
n
构造bMat
吗?这取决于所有b
向量的形式。如果你在评论中让我知道,我可以更新答案。如果你事先不知道,你可能会循环。每次查找C
后(对于新的b1
),您对结果做了什么?我事先知道n。在产品之后,我将其添加到另一个3nx1数组中。这很有效。谢谢您的C需要重新调整为3nx1:)。谢谢您的快速回复。@JohnSmith很乐意帮忙。最好的感谢是通过单击我的回答旁边的勾号来标记所回答的问题。另外,不要使用重塑
来重塑C
。我刚刚编辑了我的答案,以提供一种更快的方法,将矩阵重塑为列向量。干杯。我试着打勾,但显然我必须等8分钟才能打勾:D
C = C(:);