同时为多个符号变量赋值

时间:2015-08-28 01:29:48

标签: matlab

我想同时为多个符号变量赋值。

例如,

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];

当我像上面那样定义矩阵x和y时, 我想得到以下答案。

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

当然,我只需使用以下代码即可得到这个答案。

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

但我必须使用矩阵x和y而不是[a,b,c]和(1,2,3)。 因为实际上我计算时矩阵x中有很多符号变量。 所以我想使用矩阵。

在这种情况下,如果我使用矩阵x和y

x = deal(y);

答案就是

x = 1 2 3

但我想得到答案,

a = 1
b = 2
c = 3

如何使用矩阵x和y为变量赋值? 请回答我的问题。 谢谢。

1 个答案:

答案 0 :(得分: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))