【发布时间】:2014-11-25 10:43:47
【问题描述】:
在我当前的分析中,我尝试将维度为 nxm 的矩阵 (flm) 与矩阵 nxmxp 的逆矩阵相乘,然后使用此结果将其乘以矩阵的逆矩阵 (flm)。
我正在尝试使用以下代码:
flm = repmat(Data.fm.flm(chan,:),[1 1 morder]); %chan -> is a vector 1by3
A = (flm(:,:,:)/A_inv(:,:,:))/flm(:,:,:);
但是。由于尺寸问题,我收到以下错误消息: 使用 ==> mrdivide 时出错 输入必须是二维的,或至少一个 输入必须是标量。 要计算元素 RDIVIDE,请使用 RDIVIDE (./) 代替。
我不知道如何在不使用 for 循环的情况下继续进行,所以有人有什么建议吗?
【问题讨论】:
-
P.S.我复制了一个错误(第二个 flm 没有参数)所以它应该看起来像这样: flm = repmat(Data.fm.flm(chan,:),[1 1 morder]); A = (flm(:,:,:)/A_inv(:,:,:))/flm(:,:,:);
-
欢迎来到 SO!请注意,您可以通过单击问题下方的“编辑”按钮来编辑您自己的问题。此外,如果您尝试尽可能地格式化代码(例如代码前面没有 27 个空格),那也很好。
-
如何计算 3D 矩阵的逆矩阵?那是不可能的。每个 2D 切片是否分别反转?另外,为什么要计算 A 的(未定义的)逆并使用除法,而不是仅仅相乘?
-
我不想反转 3D 矩阵,我需要的是反转矩阵 A_inv 的每一层(是的,每个 2D 切片单独反转),然后将其乘以 Data.fm .flm 矩阵(即 2by2 )。 A_inv 这个名字是为了让我知道我得到的矩阵(在程序的前面)还不是矩阵 A,而是我想要的矩阵的逆矩阵。
标签: matlab matrix multidimensional-array multiplication matrix-inverse