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 引数の次元が一貫していません。

エラー ==> 60 B=[0,k21,k31;k12,0,k32;0,0,k] での g;

K21、K31、K12、K32、および k の次元はすべて 923334 x 1 です。次の操作を実行するにはどうすればよいですか。

4

1 に答える 1

1

あなたのコードは私にとってうまく機能します。k値(k12、k31、k32 ...)がスカラー(または1x1次元)であることを確認します

編集 :

あなたが言及した場合、kはnx1であり、1つの簡単な方法はループを実行することです。

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 に答える