我的目标是计算函数的衍生,使用此结果作为另一个函数。显然,这意味着:
f = @(x) (x-1)*(x-2); %A simple function
derivative = jacobian(f,x) %MATLAB output : "2*x - 3"
df = @(x) derivative %= @(x) 2*x - 3
df(2) %= "2*x -3" instead of 2*2 - 3
我怎么能做这样的事情?我尝试了 syms x ,但没有帮助。
答案 0 :(得分:3)
您想要matlabFunction
:
g = matlabFunction(f)
将符号表达式或函数f
转换为具有句柄g
的MATLAB函数。
在你的例子中:
>> syms x
>> f = @(x) (x-1)*(x-2);
>> derivative = jacobian(f,x);
>> df = matlabFunction(derivative)
df =
function_handle with value:
@(x)x.*2.0-3.0
>> df(2)
ans =
1