将3x3矩阵乘以3nx1阵列而不使用循环

时间:2012-12-05 03:43:35

标签: matlab matrix-multiplication

在我的代码中,我必须将矩阵A(尺寸3x3)乘以向量b1(尺寸3x1),得到C。所以C = A*b1。现在,我需要重复此过程n次,保持A固定,并且每次将b更新为不同的(3x1)向量。这可以使用循环完成,但我想避免它来节省计算成本。相反,我想把它作为矩阵和矢量产品。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您需要构建一个b向量矩阵,例如n等于4:

bMat = [b1 b2 b3 b4];

然后:

C = A * bMat;
在这种情况下,

提供大小为3x4的解决方案。如果你想要一个长度为3n乘1的向量形式的解,那么执行:

C = C(:);

我们可以为没有循环的任意bMat构建n吗?这取决于所有b向量的形式。如果您在评论中告诉我,我可以更新答案。