1
我定义了一个函数,它返回符号表达式或函数句柄(再加上几个)的导数。Matlab导数返回常量
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相关的任何与主题无关的内容,或者如果你想讨论比评论块长的内容,我已经为我们制作了一个MATLAB聊天室。当你有时间时就停下来! http://chat.stackoverflow.com/rooms/81987/matlab – rayryeng