14

ベクトルを関数呼び出しにスプライスしたいのですが、これを行う方法が見つかりません。出来ますか?

私が言っていることを拡張するためにx、長さのベクトルと引数を取るn関数があるとしましょう。またはのようなものを呼び出して呼び出すことができるようにしたいです。ベクトルではなくセル配列の場合、呼び出すと目的の結果が得られます。がベクトルである場合に相当するものがあることは合理的であるように思われます。fnf(x(1), x(2), ..., x(n))f(x)f(splice(x))xf(x{:})x

不足している演算子または関数を期待しています。y = num2cell(x)に続いて呼び出すこともできますf(y{:})が、これは実際には私が探しているものではありません。

4

1 に答える 1

7

コメントですでに述べたように

tmp = num2cell(x)
f(tmp{:})

行く方法です。

spliceあなたが望むことをするような機能f(splice(x))は、トリックをしません。入力を複数の出力に分割できる場合でもf、最初の引数のみを取ります (出力を要求せずにコマンド ラインで関数を呼び出す場合と同様)。

subsrefこの場合 でも機能しません。たとえば、 -functionsubsref(num2cell([1 2]),struct('type','{}','subs',{{':'}}))と同じことを行うためです。つまり、複数の出力が明示的に要求されていない限り、1 つの出力のみを返します。splice

于 2012-07-13T01:32:00.610 に答える