我想计算两个变量的函数的微分。例如:
ax^2 + by^2 + cxy
所以我这样做:
a = 1
b = 1
c = 1
syms x y f
f = a*x^2 + b*y^2 + c*x*y
df = matlabFunction(diff(f,'x'))
返回:
df =
@(x,y)x.*2.0+y
没关系。但如果 c 为零,则它返回:
df =
@(x)x.*2.0
我不能再用两个参数调用它,但我需要传递两个参数,即使 y 不再在定义中,因为 c 并不总是零。我该如何解决这个问题?
最佳答案
matlabFunction
的'vars'
参数让您指定生成函数的输入变量:
>> df = matlabFunction(diff(f,'x'),'vars',[x y])
df =
@(x,y)x.*2.0
关于matlabFunction 删除输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23894749/