matlab多符号变量同时赋值

需求:当一个符号表达式内有非常多自变量,并且这个符号表达式需要循环赋值时,每次都一个变量一个变量赋值太慢了!如何实现对多符号变量同时赋值

例如:

syms x1 x2 x3 x4;
f1 = x1 + 2*x2 + x3^2 - x4;

% 如果在循环里,这样每次都赋值太慢了
x1 = 2; x2 = 3; x3 = 2; x4 = -1;
double(subs(f1));

改进:用一个数组来专门记录符号变量

syms x1 x2 x3 x4;
f1 = x1 + 2*x2 + x3^2 - x4;

x = [x1 x2 x3 x4];  % 一次性记录所有符号变量

x0 = [2 3 2 -1];  % 初值

double( subs{f1, x, x0} );   % 这种式子在循环中使用非常方便!!

说明:利用的就是赋值函数subs的拓展/完整功能而已~ 从用法上很好理解。

你可能感兴趣的:(matlab多符号变量同时赋值)