这是我的问题的一个简单例子:
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
>>
我不知道为什么第二行出现错误?
特别是因为“innerFunc”通常可以工作并且我将 outerFunc 函数中的输入传递给它。
似乎在
您打算将其作为输入传递 给。但是,该行所做的是调用(由于缺少该函数的输入,因此会出现错误);然后该函数调用的输出将用作 的输入。
innerFunc
outerFunc
innerFunc
outerFunc
要将(的句柄)
innerFunc
作为输入传递,outerFunc
您需要在前面添加@
(更多信息请参见此处):