这是一行给我带来麻烦的代码。
arrayfun(@(x)container.nodelist(x).config(@a_func_handle,0),2:6);
Container是一个类,其中一个属性是节点的对象数组,该数组称为nodelist。
每个节点都有一个名为config的函数,用于初始化它。 Config需要一个输入,其中一个输入是函数的句柄。我传递的函数句柄需要一个与它一起传递的常量,由0表示。
在这种情况下,我想在nodelist中的位置2到6配置具有特定功能的节点,所以我想使用arrayfun而不是for循环。
不幸的是,Matlab barfs的功能配置“输入太多”。我写错了什么?这个例子清楚了吗?
答案 0 :(得分:2)
我明白了。我最终做的是使用嵌套的匿名函数,如下所示:
arrayfun(@(y)y.config(@(x)(configSlave(x,0))),exp.pico_list(2:6));
答案 1 :(得分:0)
如果我理解正确,config
是nodelist
数组中包含的对象的方法。在这种情况下,以通常的MATLAB方式,您调用方法的对象将作为第一个参数传递。例如,您可能需要编写config
方法,如下所示:
function config(obj, fcnHandle, value)
obj.FunctionHandle = fcnHandle;
obj.Value = value;
end