matlabFunction删除输入参数

时间:2014-05-27 16:44:59

标签: matlab anonymous-function symbolic-math function-handle

我想计算两个变量函数的区别。例如:

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不总是为零。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

matlabFunction'vars'参数允许您指定生成函数的输入变量:

>> df = matlabFunction(diff(f,'x'),'vars',[x y])

df = 

    @(x,y)x.*2.0