0

これが私に問題を引き起こしているコードの行です。

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

コンテナは、そのプロパティの1つがノードのオブジェクト配列であるクラスであり、その配列はノードリストと呼ばれます。

各ノードには、初期化に使用されるconfigという関数があります。Configは1つの入力を想定しており、そのうちの1つは関数へのハンドルです。私が渡す関数ハンドルには、0で表される定数が必要です。

この場合、nodelistの2から6の位置にあるノードを特定の関数で構成したいので、forループの代わりにarrayfunを使用することを考えました。

残念ながら、関数構成に「入力が多すぎる」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 に答える