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(:);