gpt4 book ai didi

arrays - 如何从元胞数组调用函数句柄?

转载 作者:行者123 更新时间:2023-12-03 09:24:53 25 4
gpt4 key购买 nike

我尝试做的是保留函数句柄的元胞数组,然后在循环中调用其中一个。它不起作用,在我看来,我得到的只是一个 1x1 元胞数组,而不是其中的函数句柄。

我不固定使用元胞数组,所以如果另一个集合可以工作,对我来说没问题。

这是我的代码:

func_array = {@(x) x, @(x) 2*x }
a = func_array(1) %%% a = @(x) x
a(2) %%% (error-red) Index exceeds matrix dimensions.
a(0.2) %%% (error-red) Subscript indices must either be real positive integers or
logicals.

谢谢阿米尔

最佳答案

问题出在这一行:

a = func_array(1)

您需要访问元胞数组的内容,而不是元素。

a = func_array{1}

一切正常。命令窗口中的视觉输出看起来相同,这确实有点误导,但看看工作区即可看到差异。

正如chappjc在评论中提到的,中间变量不是必需的。您可以按如下方式调用您的函数:

func_array{2}(4)    %// 2*4

ans = 8

错误说明:

a(2) %%% (error-red) Index exceeds matrix dimensions.

a 仍然是一个元胞数组,但只有一个元素,因此 a(2) 超出范围。

a(0.2) %%% (error red) Subscript indices must either be real positive ...

...并且数组不能用小数索引。但这无论如何都不是你的意图;)

关于arrays - 如何从元胞数组调用函数句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23136943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com