我想知道在不使用任何“for”循环(即矢量化)的情况下,以下两个矩阵是否可以在Octave中相乘:
D是具有m列的3×m矩阵,例如[d1c,d2c,d3c,d4c]
(其中m = 4,d * c表示3 x 1列向量)。
A是具有m行的m×2矩阵,例如[a1r;a2r;a3r;a4r]
(其中a * r表示1 x 2行向量)。
我想计算输出:
result = d1c * a1r + d2c * a2r + d3c * a3r + d4c * a4r;
其中每个d*c * a*r
是一个3 x 2矩阵。
我想知道我可以将D视为具有矩阵/向量元素d*c
的行向量,将A视为具有矩阵/向量元素a*r
的列向量,然后执行特殊计算矩阵乘法:
result = D ?*? A; where "?*?" means a special multiplication as specified above
因此,当m很大时,这种向量化乘法可以更快地完成工作。
Octave中是否有内置函数/方法让我以这种方式完成任务?
任何想法。谢谢你的任何建议。
答案 0 :(得分:0)
经过一些研究,我发现,实际上,正常的矩阵乘法会为我完成任务。那就是:
result = D * A; # just use the normal matrix multiplication in Octave
不需要特殊的矩阵乘法。