在以下说明错误的简化示例中,该函数应返回数组中索引处f_what(..)
的输入参数的值:y
ts
function Y = f_what(y, ts)
function get_out = get(t)
get_out = y(t);
end
Y = arrayfun(get, ts);
end
调用它:
>> f_what(1:10, 1:5)
Error using f_what/get (line 4)
Not enough input arguments.
Error in f_what (line 7)
Y = arrayfun(get, ts);
此外,由于某种原因,以下内容get(..)
应该与上述内容相同:
function Y = f_what(y, ts)
get = @(t) y(t);
Y = arrayfun(get, ts);
end
调用它:
>> f_what(1:10, 1:5)
ans =
1 2 3 4 5
“没有足够的输入参数”......arrayfun(..)
应该用一个参数来调用它的第一个参数。并且get(..)
有一个输入参数。我不明白为什么这还不够。
编辑:更归结为:
function Y = f_what
function get_out = get_(t)
get_out = t;
end
Y = arrayfun(get_, 1:5);
end
还是同样的错误。
编辑 2:如果我提供@get
,arrayfun(..)
而不是get
. 但我仍然不明白为什么没有@
.