/ / Matlab - 関数呼び出しの引数にベクトルをスプライスする - matlab

Matlab - 関数呼び出しの引数にベクトルをスプライスする - matlab

私は、ベクトルをスプライスして関数呼び出しにしたいのですが、これを行う方法を見つけることはできません。

私の言うことを広げるために、ベクトル x 長さ n また、 f それは n 議論私は電話できるようにしたい f(x(1), x(2), ..., x(n)) 何かを呼び出すことによって f(x) または f(splice(x))。もし x ベクトルの代わりにセル配列、呼び出し f(x{:}) 所望の結果が得られる。それはいくつかの同等のものがあると x ベクトルです。

いくつかの演算子や関数が欲しいと思っています。私はただ電話できる y = num2cell(x) に続く f(y{:})しかし、これは私が探しているものではありません。

回答:

回答№1の場合は7

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

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

行く道です。

機能 splice そのため、 f(splice(x)) あなたがしたいことをするだろう、トリックをしないでください。 入力を複数の出力に分割することができますが、 f (出力を要求せずにコマンドラインで関数を呼び出す場合と同様に)最初の引数だけをとります。

ない subsref この場合には機能します。 subsref(num2cell([1 2]),struct("type","{}","subs",{{":"}})) あなたと同じことをするつもりです spliceすなわち、複数の出力が明示的に要求されない限り、出力を1つだけ戻す。