MATLAB可以在.m函数文件中直接使用偏导数吗

.m代码如下:

function [dfx,dfy] = pian_diff(x,y)
dfx = diff(z,x);     %对x的偏导数
dfy = diff(z,y);     %对y的偏导数
dfxy= diff(dfx,y); %对x,y的多元偏导数
end

命令行:

[dfx,dfy,dfxy]=pian_diff(1,2)

运行结果:

dfx=[] 
dfy=[] 
dfxy=[]

请问这是为什么?是不是因为以下语句已经不是函数,而是常量表达式了呢?菜鸡初学求助!

z=x*y*sin(x+y);

如果是这样的话,只能用命令行先求出偏导数表达式再把表达式写入.m文件吗?有没有其他办法?

请问您解决了吗?遇到同样的问题