1

MATLAB R2009b でシンボル要素から構成される行列を作成するにはどうすればよいですか?

これを行う退屈な方法は次のとおりです。

syms a11 a12 a21 a22
A = [a11 a12; a21 a22]

しかし、10x10 の行列が必要な場合は、もっと良いものが必要です。

ここで、次のコマンドを見つけました。

A = sym('A%d', [2 2]);

しかし、R2009b を使用している間は、MATLAB の最近のバージョンでのみ機能するようです。

4

1 に答える 1

2

あまり効率的ではない方法は、スクリプトを作成して文字列を作成し、それを で実行することevalです。

cmd_var = 'syms';
cmd_mat = 'A=[';
for i = 1:3
    for j = 1:3
        var = sprintf(' a_%d_%d ',i,j);
        cmd_var = [cmd_var var];
        cmd_mat = [cmd_mat var];
    end
    cmd_mat = [cmd_mat ';'];
end
cmd_var = [cmd_var ';'];
cmd_mat = [cmd_mat '];'];

したがって、コマンド文字列は次のようになります。

cmd_var =
syms a_1_1  a_1_2  a_1_3  a_2_1  a_2_2  a_2_3  a_3_1  a_3_2  a_3_3 ;

cmd_mat =
A=[ a_1_1  a_1_2  a_1_3 ; a_2_1  a_2_2  a_2_3 ; a_3_1  a_3_2  a_3_3 ;];

コマンド文字列を実行します。

eval(cmd_var)
eval(cmd_mat)
于 2012-04-24T00:37:07.967 に答える