Octave 倍频程:2个矩阵怎么能以这种方式相乘?

Octave 倍频程:2个矩阵怎么能以这种方式相乘?,octave,Octave,我想知道以下2个矩阵是否可以在不使用任何for循环(即矢量化)的情况下以倍频程的方式相乘: D是具有m列的3 x m矩阵,例如[d1c、d2c、d3c、d4c],其中m=4,D*c表示3 x 1列向量 A是具有m行的mx2矩阵,例如[a1r;a2r;a3r;a4r],其中A*r表示1x2行向量 我想计算输出: result = d1c * a1r + d2c * a2r + d3c * a3r + d4c * a4r; 其中,每个d*c*a*r是一个3x2矩阵 我想知道我是否可以将D视为带有矩

我想知道以下2个矩阵是否可以在不使用任何for循环(即矢量化)的情况下以倍频程的方式相乘:

D是具有m列的3 x m矩阵,例如[d1c、d2c、d3c、d4c],其中m=4,D*c表示3 x 1列向量

A是具有m行的mx2矩阵,例如[a1r;a2r;a3r;a4r],其中A*r表示1x2行向量

我想计算输出:

result = d1c * a1r + d2c * a2r + d3c * a3r + d4c * a4r;
其中,每个d*c*a*r是一个3x2矩阵

我想知道我是否可以将D视为带有矩阵/向量元素D*c的行向量,将a视为带有矩阵/向量元素a*r的列向量,然后将计算作为特殊的矩阵乘法:

result = D ?*? A; where "?*?" means a special multiplication as specified above
因此,当m较大时,向量化乘法的运算速度会更快

八度音阶中是否有任何内置函数/方法可以让我以这种方式完成任务


任何想法。谢谢你的建议。

经过一些研究,我发现,事实上,正规矩阵乘法可以帮我完成这项任务。即:

result = D * A;   # just use the normal matrix multiplication in Octave
不需要特殊的矩阵乘法