是否可以将匿名函数存储在数组中?
由于不同的方法,我收到两个不同的错误:
f(1) = @(x) cos(x)
f(2) = @(x) -sin(x)
f(3) = @(x) -cos(x)
f(4) = @(x) sin(x)
error: operator =: no conversion for assignment of 'function handle' to indexed 'scalar'
f = [@(x) cos(x), @(x) -sin(x), @(x) -cos(x), @(x) sin(x)]
error: octave_base_value::resize (): wrong type argument 'function handle'
您可以将它们放入单元格数组中:
f{1} = @(x) cos(x);
f{2} = @(x) -sin(x);
f{3} = @(x) -cos(x);
f{4} = @(x) sin(x);
>> f
f =
{
[1,1] =
@(x) cos (x)
[1,2] =
@(x) -sin (x)
[1,3] =
@(x) -cos (x)
[1,4] =
@(x) sin (x)
}
您甚至可以将参数传递给数组中的特定函数:
>> f{2}(pi/2)
ans = -1