私は、ベクトルをスプライスして関数呼び出しにしたいのですが、これを行う方法を見つけることはできません。
私の言うことを広げるために、ベクトル 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つだけ戻す。