2015-08-28 3 views
0

Я хочу одновременно присвоить значения нескольким символическим переменным.Назначение значений нескольким символьным переменным одновременно

Например,

syms a b c 
% for several reasons, I have to define a, b, c as symbolic variables. 

x = [a, b, c]; 
y = [1, 2, 3]; 

Когда я определить матрицу х и у, как и выше, Я хочу получить следующий ответ.

a = 1 
b = 2 
c = 3 
% Assign values to symbolic variables. 

Конечно, просто я могу получить этот ответ, используя следующий код.

[a, b, c] = deal(1, 2, 3); 

Но я должен использовать матрицу х и у вместо [а, б, в] и (1, 2, 3). Потому что на самом деле существует столько символических переменных в матрице x при вычислении. Итак, я хочу использовать матрицу.

В этом случае, если я использую матрицу х и у

x = deal(y); 

Ответ просто

x = 1 2 3 

Но я хочу получить ответ,

a = 1 
b = 2 
c = 3 

Что я должен сделать, чтобы присвоить значения переменным с помощью матриц x и y? Пожалуйста, ответьте на мой вопрос. Спасибо.

+0

Я не понимаю, чего вы пытаетесь достичь. 'syms a; a = 1' перезаписывает символическую переменную и создает двойной со значением 1. Таким образом, все ответы на ваш предыдущий вопрос применяются здесь. – Daniel

ответ

0

Я не думаю, что вы должны пытаться это сделать, я уверен, что для предотвращения этой проблемы должны быть некоторые другие варианты, которые вы могли бы сделать раньше. Но это можно сделать, наверное, более красиво, чем я.

syms a b c 
x=[a b c] 
y=[1 2 3] 

%// We want to get the name of the variable from x, and the value from y 
arrayfun(@(i) assignin('caller',char(x(i)),y(i)),1:length(x)) 
Смежные вопросы