matlab 怎么给符号变量赋值

syms x1 x2
f=2*x1^2-2*x1*x2+x2^2+2*x1-2*x2;
g=[diff(f,x1); diff(f,x2)];
x1=0;x2=0;
>> disp(g)
4*x1 - 2*x2 + 2
2*x2 - 2*x1 - 2

>> x1=0;x2=0;
>> disp(g)
4*x1 - 2*x2 + 2
2*x2 - 2*x1 - 2

怎么能让g得出数来啊

用subs(W)把符号表达式里面的符号量用当前工作区中的同名变量替换,也就是用户所要的赋值了。

其实任何矩阵的元素都可以直接作为变量来使用,能否作为变量的唯一判断标准就是它是否能够放在赋值符号(=)的左边。

matlab中subs()是符号计算函数,表示将符号表达式中的某些符号变量替换为指定的新的变量。

扩展资料:

常用调用方式为:

R = subs(S, new) 利用new的值代替符号表达式S中的默认符号。

R = subs(S) 用由调用函数或Matlab工作空间中获取的值替代了在符号表达式S中的所有当前的变量。

R = subs(S, old, new) 利用new的值代替符号表达式中old的值。old为符号变量或是字符串变量名。

参考资料来源:百度百科-MATLAB

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-04
用subs(W)把符号表达式里面的符号量用当前工作区中的同名变量替换,也就是你所要的赋值了。

其实任何矩阵的元素都可以直接作为变量来使用。能否作为变量的唯一判断标准就是它是否能够放在赋值符号(=)的左边。
第2个回答  推荐于2017-09-07
syms x1 x2
f=2*x1^2-2*x1*x2+x2^2+2*x1-2*x2;
g=[diff(f,x1); diff(f,x2)];
x1=0;x2=0;
subs(g) % 加这句本回答被提问者采纳
相似回答