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 >> |