我需要使用另一个函数f
创建一个函数g
作为参数(g
在.m
文件中定义,而不是inline
) 。在f
的正文中,我需要使用feval
来评估多个值的g
;类似的东西:
function y = f(a,b,c,g)
z=feval(g,a,b,c);
y=...
end
语法是什么?我试图使用句柄,但是我收到了错误消息。
答案 0 :(得分:2)
你可以这样做:
在m文件中定义f
:
function y = f(a,b,c,g)
y = feval(g,a,b,c);
end
在m文件中定义g
:
function r = g(a,b,c)
r = a+b*c;
end
使用[{1}}:
的句柄呼叫f
g
答案 1 :(得分:1)
如果您不想更改add
的正文,那么您可以这样做:
function s = add_two(a)
s = a + 2;
end
function s = add_three(a)
s = a + 3;
end
function s = add(a, fhandle1, fhandle2)
s = feval(fhandle1, a);
s = s + feval(fhandle2, s);
end
a = 10;
fhandle1 = @add_two; // function handler
fhandle2 = @add_three;
a = add(a, fhandle1, fhandle2);
a