如何在Octave中为数组分配匿名函数?

问题描述 投票:0回答:1

是否可以将匿名函数存储在数组中?

由于不同的方法,我收到两个不同的错误:

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'
arrays octave variable-assignment anonymous-function assign
1个回答
0
投票

您可以将它们放入单元格数组中:

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
© www.soinside.com 2019 - 2024. All rights reserved.