0

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

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

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

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

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

不幸的是,Matlab 对函数配置有“太多输入”的错误。我写错了什么?这个例子清楚吗?

4

2 回答 2

2

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

arrayfun(@(y)y.config(@(x)(configSlave(x,0))),exp.pico_list(2:6));
于 2012-05-11T13:08:40.347 回答
0

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

function config(obj, fcnHandle, value)
    obj.FunctionHandle = fcnHandle;
    obj.Value = value;
end
于 2012-05-11T06:48:58.030 回答