Matlab:使用另一个函数创建函数作为参数

时间:2014-05-16 13:26:00

标签: matlab

我需要使用另一个函数f创建一个函数g作为参数(g.m文件中定义,而不是inline) 。在f的正文中,我需要使用feval来评估多个值的g;类似的东西:

function y = f(a,b,c,g)
 z=feval(g,a,b,c);
 y=...
end

语法是什么?我试图使用句柄,但是我收到了错误消息。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

  1. 在m文件中定义f

    function y = f(a,b,c,g)
        y = feval(g,a,b,c);
    end
    
  2. 在m文件中定义g

    function r = g(a,b,c)
        r = a+b*c;
    end
    
  3. 使用[{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