嵌套函数无法识别输入

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

这是我的问题的一个最小示例:

innerFunc([2, 4, 5]) % works fine
outerFunc(innerFunc, [2, 4, 5]) % doesn't work

function out = innerFunc(my_vec) 
    my_vec % not recogniced when called from outerFunc
    out = -1;
end

function out = outerFunc(func, my_vec) 
    out = func(my_vec);
end

这是代码的输出:


my_vec =

     2     4     5


ans =

    -1

Not enough input arguments.

Error in nested_funcs_bug>innerFunc (line 5)
    my_vec % not recogniced when called from outerFunc

Error in nested_funcs_bug (line 2)
outerFunc(innerFunc, [2, 4, 5]) % doesn't work

>> 

我不知道为什么第2行会出错?

特别是因为“innerFunc”通常可以工作,并且我将其传递给outerFunc函数中的输入。

function matlab nested
1个回答
0
投票

看来在

outerFunc(innerFunc, [2, 4, 5]) % doesn't work

您打算 传递

innerFunc
作为
outerFunc
的输入。但是,您的代码所做的是 call
innerFunc
(这会给出错误,因为该函数的输入丢失)。

要将

innerFunc
(的句柄)作为
outerFunc
的输入传递,您需要在前面添加
@
(更多信息此处):

outerFunc(@innerFunc, [2, 4, 5])
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.