可変長の入力のサポート
この例では、varargin
を使って可変長の入力引数を受け入れる関数を定義する方法を示します。varargin
引数は関数入力が含まれた cell 配列で、各入力は別々のセルに入っています。
plotWithTitle.m
というファイルでは、関数 plot
に対応する可変長の入力のペア (x、y) とオプションのタイトルとを受け入れる関数を作成します。この関数で奇数の入力を受け取ると、最後の入力はタイトルであると見なされます。
function plotWithTitle(varargin) if rem(nargin,2) ~= 0 myTitle = varargin{nargin}; numPlotInputs = nargin - 1; else myTitle = 'Default Title'; numPlotInputs = nargin; end plot(varargin{1:numPlotInputs}) title(myTitle)
varargin
は cell 配列であるため、各セルの内容には中かっこ {}
を使用してアクセスします。構文 varargin{1:numPlotInputs}
では、関数 plot
に渡される入力のコンマ区切りリストが作成されます。
2 つの入力セット (x、y) とタイトルを指定して plotWithTitle
を呼び出します。
x = [1:.1:10];
y1 = sin(x);
y2 = cos(x);
plotWithTitle(x,y1,x,y2,'Sine and Cosine')
varargin
は入力引数リストに単独で使用するか、次のように入力のリストの最後に指定することもできます。
function myfunction(a,b,varargin)
この場合、varargin{1}
は関数に渡される 3 番目の入力に対応し、nargin
によって length(varargin) + 2
が返されます。