2012-12-05 51 views
0

在我的代码中,我必须将矩阵A(维度3x3)与矢量b1(维度3x1)相乘,从而产生C。所以C = A*b1。现在,我需要重复这个过程n次保持A固定和更新b每次不同的(3x1)向量。这可以使用循环完成,但我想避免它来节省计算成本。相反,我想做它作为矩阵和矢量产品。有任何想法吗?在不使用循环的情况下将3x3矩阵乘以3nx1阵列

+1

如果你提前不知道'n',你可能会循环。每次找到“C”后(对于新的'b1'),你对结果做了什么? –

+0

我事先知道。产品后,我将它添加到另一个3nx1阵列。 –

回答

2

需要构建b向量的矩阵,例如,用于n等于4:

bMat = [b1 b2 b3 b4]; 

然后:

C = A * bMat; 

提供3×4大小的这种情况下的解决方案。如果你想通过1长度3N的载体形式的解决方案,然后做:

C = C(:); 

我们可以构建bMat任意n没有一个循环?这取决于你所有的b载体的形式是什么。如果您在评论中告诉我,我可以更新答案。

+0

这工作。谢谢!你的C需要重新塑造,尽管3nx1 :)。感谢您及时的回复。 –

+0

@JohnSmith很高兴帮助。最好的感谢是通过点击我回复旁边的勾号来回答这个问题。另外,不要使用'reshape'来重塑'C'。我刚刚编辑了我的答案,提供了一种将矩阵重塑为列向量的更快速的方法。干杯。 –

+0

我试图打勾,但显然我必须等待8分钟才能做到这一点:D –