varargin
入力引数リストの引数の数を可変にする
説明
最後の入力引数がvarargin
となる関数は
入力引数リストに示した数よりも多くの入力引数を指定して
コールすることができます.
varargin
キーワードよりも後に渡された入力引数は,
関数内ではvarargin
という名前のリストとして取得することが
できます.
varargin
キーワードが形式的な入力引数リストの中で
n
番目の引数と仮定すると,
関数が n-1
個未満の入力引数を指定して
コールされた場合,
varargin
リストは定義されませんが,
n-1
個の引数を指定してコールされた場合には
varargin
リストは空のリストとなります.
function y= ex(varargin)
は
任意の数の入力引数を指定してコールすることが可能です.
関数ex
の中では, 入力引数は
varargin(i)
, i=1:length(varargin)
により取得可能です.
関数の最後の入力引数ではない場合,
varargin
は,特殊な意味を持たない通常の
入力引数の名前となります.
実際の入力引数の総数は,argn(2)
で取得できます.
注意
foo(...,key=value)
のような名前付き引数構文は
varargin
とは互換性がありません.
その理由は,
値に対応する名前(すなわち, keys) が varargin
リストに
保存されないためです.
例えば,以下について考えてみてください:
function foo(varargin) disp([varargin(1),varargin(2)]) endfunction
--> foo(a=1, b=2) 1. 2. --> foo(b=1, a=2) 1. 2.
結果は同じですが, 引数は逆になります.
例
参照
Report an issue | ||
<< tree2code | Functions | varargout >> |