MATLAB R2009b でシンボル要素から構成される行列を作成するにはどうすればよいですか?
これを行う退屈な方法は次のとおりです。
syms a11 a12 a21 a22
A = [a11 a12; a21 a22]
しかし、10x10 の行列が必要な場合は、もっと良いものが必要です。
ここで、次のコマンドを見つけました。
A = sym('A%d', [2 2]);
しかし、R2009b を使用している間は、MATLAB の最近のバージョンでのみ機能するようです。
あまり効率的ではない方法は、スクリプトを作成して文字列を作成し、それを で実行すること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)