如何在matlab中将nxm的矩阵与矩阵nxmxp的不同维度相乘

时间:2014-11-25 10:43:47

标签: matlab matrix multidimensional-array multiplication matrix-inverse

在我目前的分析中,我试图将维度 nxm 的矩阵(flm)与矩阵 nxmxp 的逆矩阵相乘,然后使用此结果将它乘以矩阵的倒数(flm)。

我正在尝试使用以下代码:

flm = repmat(Data.fm.flm(chan,:),[1 1 morder]); %chan -> is a vector 1by3
A = (flm(:,:,:)/A_inv(:,:,:))/flm(:,:,:);

然而。由于尺寸问题,我收到以下错误消息: 使用==>时出错mrdivide 输入必须是2-D或至少一个 输入必须是标量。 要计算元素RDIVIDE,请使用 相反,RDIVIDE(./)。

我不知道如何在不使用 for 循环的情况下继续进行,所以任何人都可以提出建议吗?

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找一种方法来方便地乘以矩阵,当一个矩阵的维数高于另一个矩阵。在这种情况下,您可以使用bxsfun自动展开'较小的矩阵。

x  = rand(3,4);
y = rand(3,4,5);
bsxfun(@times,x,y)

这很简单,效率很高。

请务必查看doc bsxfun以获取更多示例。