Arrayfun语法和类方法的用法

时间:2012-05-10 18:56:48

标签: matlab

这是一行给我带来麻烦的代码。

arrayfun(@(x)container.nodelist(x).config(@a_func_handle,0),2:6);

Container是一个类,其中一个属性是节点的对象数组,该数组称为nodelist。

每个节点都有一个名为config的函数,用于初始化它。 Config需要一个输入,其中一个输入是函数的句柄。我传递的函数句柄需要一个与它一起传递的常量,由0表示。

在这种情况下,我想在nodelist中的位置2到6配置具有特定功能的节点,所以我想使用arrayfun而不是for循环。

不幸的是,Matlab barfs的功能配置“输入太多”。我写错了什么?这个例子清楚了吗?

2 个答案:

答案 0 :(得分:2)

我明白了。我最终做的是使用嵌套的匿名函数,如下所示:

arrayfun(@(y)y.config(@(x)(configSlave(x,0))),exp.pico_list(2:6));

答案 1 :(得分:0)

如果我理解正确,confignodelist数组中包含的对象的方法。在这种情况下,以通常的MATLAB方式,您调用方法的对象将作为第一个参数传递。例如,您可能需要编写config方法,如下所示:

function config(obj, fcnHandle, value)
    obj.FunctionHandle = fcnHandle;
    obj.Value = value;
end