我有一个相当复杂的功能,我想写一个匿名函数。
它看起来像这样:
function Answer = MatlabFunction(x)
a=4*x;
b=sin(a);
c=cos(b);
Answer = c;
我不知道如何将它放入匿名函数中。有没有办法在不将其作为多个级联函数编写的情况下执行此操作?
答案 0 :(得分:3)
有两种方法:
要么将函数MatlabFunction
保存在Matlab路径上,要将匿名函数定义为
myFun = @MatlabFunction;
或者,您将函数直接定义为
myFun = @(x)cos(sin(4*x));
答案 1 :(得分:0)
Matlab因不支持多步匿名函数而臭名昭着。然而,存在一些丑陋的技巧来规避这种限制。 http://www.mathworks.com/matlabcentral/answers/50195-is-it-possible-to-write-several-statements-into-an-anonymous-function提供了一些,例如:
if / else可以使用以下函数以函数形式编码:
FHEXEC = @(FH) FH(); FHSELECT = @(TF,CONDITION) TF(CONDITION==[true,false]); IF = @(CONDITION,TRUEFUNC,FALSEFUNC) FHEXEC( FHSELECT([TRUEFUNC,FALSEFUNC],CONDITION) )