0

我必须执行以下操作

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 参数维度不一致。

==> g 在 60 B=[0,k21,k31;k12,0,k32;0,0,k];

K21、K31、K12、K32 和 k 的尺寸都是 923334 乘以 1。谁能帮我如何进行以下操作。

4

1 回答 1

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

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

于 2012-10-30T06:15:57.840 回答