2017-10-10 72 views
0

这应该很简单,但我是matlab新手,所以请原谅。Matlab:如何通过函数传递列表,返回答案列表

我在做一个函数函数,它将一个函数y =“一些x的函数”作为输入。 y可以是一个函数句柄(假设y = @(x)x^2),或者我可以是一个符号表达式(比如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* 

回答

0

您可以Ÿ作为功能手柄,在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)