Main Content

可変長の入力のサポート

この例では、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 が返されます。

参考

|

関連する例

詳細