【发布时间】:2015-06-30 19:57:00
【问题描述】:
我定义了一个函数,它返回符号表达式或函数句柄的导数(加上更多)。
function df = der(f)
if isa(f, 'cfit') || isa(f, 'sfit')
df = @(x) differentiate(f, x);
elseif isa(f, 'sym') || isa(f, 'function_handle')
syms r
F = sym(f);
df = matlabFunction(diff(F), 'Vars', r);
else
error('Not a derivative of a known type')
end
end
效果很好,但是当我输入一行时,我得到的东西不会产生数组。
>> df = der(@(r) r)
df =
@(r)1.0
>> df([1,2,3])
ans =
1
是否有办法捕捉输出函数是否为常数并改变输出的行为,
>> df = der(@(r) r)
df =
@(r)1.0*ones(size(r))
>> df([1,2,3])
ans =
1 1 1
【问题讨论】:
标签: matlab anonymous-function derivative