我无法弄清楚如何在matlab中执行矩阵乘法

时间:2012-10-30 06:04:33

标签: matlab matrix matrix-multiplication

我必须执行以下操作

R = [0,0.5,-0.25; -0.25,0,0.25; 0,0,0.25];

B = [0,K21,K31; k12,0,K32; 0,0,K];

G = INV(R)* B;

G = DET(G);

但是Matlab显示以下错误

???使用==>时出错horzcat

CAT参数维度不一致。

==>中的错误克在60 B = [0,K21,K31; k12,0,K32; 0,0,K];

K21,K31,K12,K32和k的尺寸均为923334 x。任何人都可以帮助我如何进行以下操作。

1 个答案:

答案 0 :(得分:1)

您的代码适合我。检查k值(k12,k31,k32 ......)是否为标量(或1x1维度)

编辑:

对于你提到的情况,k是nx1,一种简单的方法是执行循环:

R=[0,0.5,-0.25;-0.25,0,0.25;0,0,0.25];

for ii=1:length(k)
     B=[0,k21(ii),k31(ii);k12(ii),0,k32(ii);0,0,k(ii)];
     G=inv(R).*B;
     g(ii)=det(G);
end

还有一种“矢量化”方式可以做到这一点,但它似乎已经足够了......