2012-04-24 1 views
1

Как создать матрицу, состоящую из элементов символов в MATLAB R2009b?Создание матрицы символов в MATLAB R2009b

Скучный способ сделать это будет:

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

Но если я хочу матрицу 10x10 мне нужно что-то лучше.

Here Я нашел следующую команду:

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

Но это, кажется, работает только в более поздних версиях MATLAB в то время как я использую R2009b.

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^