2012-04-24 14 views
1

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

これを行うための面倒な方法は、次のようになります。

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

しかし、私は10×10の行列をしたい場合、私はより良い何かを必要としています。

Here私は、次のコマンドが見つかりました:

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

をしかし、私がR2009bを使用している間だけMATLABの最近のバージョンで動作しているようです。

答えて

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) 
+0

それがうまくいく、ありがとう! – user16951

関連する問題