9

セル配列の各要素に関数を適用したいので、そのために持っcellfunています。ただし、この関数は 2 つの追加の引数 (文字列とベクトル) を受け取ります。この引数は、セル配列のすべての要素に対して一定に保ちたいと考えています。つまり、次のようなことをしたいと思います:

cellfun(@myfun, cellarray, const1, const2)

意味:

for i = 1:numel(cellarray),
  myfun(cellarray{i}, const1, const2);
end

numel(cellarray)とのコピーを含む中間セル配列を作成せずにそれを行う方法はありconst1ますconst2か?

4

2 に答える 2

16

これは、2 つの追加引数を指定して呼び出す匿名関数を使用して行うことができます。myfun

cellfun(@(x) myfun(x,const1,const2), cellarray)
于 2010-07-19T14:23:01.210 に答える
4

別のトリックは、インデックスで ARRAYFUN を使用することです。

arrayfun(@(k) myfun(cellarray{k},const1,const2), 1:numel(cellarray))

の戻り値myfunがスカラーでない場合は、'UniformOutput',falseオプションを設定することをお勧めします。

于 2010-07-19T19:46:27.637 に答える