Pasar funciones como argumentos en Matlab

Estoy intentando escribir una función que tiene dos matrices y el nombre de otra función como argumentos.

p.ej

main.m: x=[0 0.2 0.4 0.6 0.8 1.0]; y=[0 0.2 0.4 0.6 0.8 1.0]; func2(x,y,'func2eq') func 2.m : function t =func2(x, y, z, 'func') //"unexpected matlab expression" error message here t= func(x,y,z); func2eq.m: function z= func2eq(x,y) z= x + sin(pi * x)* exp(y); 

Matlab dice que me da el mensaje de error anterior. Nunca antes pasé un nombre de función como argumento. ¿Dónde estoy equivocado?

También podría usar identificadores de función en lugar de cadenas, de la siguiente manera:

main.m :

 ... func2(x, y, @func2eq); % The "@" operator creates a "function handle" 

Esto simplifica func2.m :

 function t = func2(x, y, fcnHandle) t = fcnHandle(x, y); end 

Para obtener más información, consulte la documentación sobre los identificadores de funciones

Puedes probar en func2.m :

 function t = func2(x, y, funcName) % no quotes around funcName func = str2func(funcName) t = func(x, y) end