需求:当一个符号表达式内有非常多自变量,并且这个符号表达式需要循环赋值时,每次都一个变量一个变量赋值太慢了!如何实现对多符号变量同时赋值?
例如:
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的拓展/完整功能而已~ 从用法上很好理解。