matlabFunction 删除输入参数

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

最佳答案

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

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

df = 

    @(x,y)x.*2.0

关于matlabFunction 删除输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23894749/

相关文章:

matlab - 在 MATLAB 中的循环内绘图

PHP扩展困惑

c# - 如何识别匿名函数

haskell - 匿名类型函数

php - 我们可以调用匿名函数而不将其存储在 PHP 的变量中吗?

python - 使用 SymPy 对角化符号矩阵

c++ - MATLAB 运算的 Armadillo 等效项

excel - 在MATLAB中使用xlsread读取数字和字符串数据

symbolic-math - 如何在 Maxima 中将某些变量定义为不可交换的

matlab - 检查符号计算