Matlab:如何通过函数传递列表,返回答案列表



这应该很容易,但我是 matlab 的新手,所以请原谅我。

我正在制作一个函数函数,它将函数 y = "x 的某个函数"作为输入。 y 可以是函数句柄(假设 y= @(x) x^2 ),或者我可以 y 是一个符号表达式(如 y = x^2)...任何更容易的。

我想通过函数 y 运行 x 列表,并返回计算出的 y 值的列表。 所以结果应该是 [1 4 9 16 25]。如何在函数函数中执行此操作?

它应该看起来像这样:

function myfunc = func(f)
    xlist = [1 2 3 4 5];  %IMPORTANT: in this case, xlist's class is "sym"
    ylist = ... %statement of something like "f(xlist)" goes here*

您可以将 y 作为函数句柄并在 m 文件本身中调用.....

y = @(x) x.^2 ;
x = [1 2 3 4 5] ;
y = y(x)

如果你想让它成为一个函数...要么在函数中定义 y,要么将其作为输入,如下所示:

function out = myfun(x,y)
if ~isa(y,'function_handle')
    error('input t should be a function handle')
end
out = y(x) ;
end

y = @(x) x.^2 ;
x = [1 2 3 4 5] ;
out = myfun(x,y)