ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

varargin

可変の入力引数のリスト

構文

varargin

説明

varargin は、任意の数の入力引数を関数で受け入れ可能にする関数定義ステートメントの入力変数です。小文字を使用して varargin を指定し、明示的に宣言された入力の後に最後の入力引数として含めます。

関数を実行した場合、varargin は 1 行 N 列の cell 配列となり、N は明示的に宣言された入力の後に関数が受け取る入力の数を表します。ただし、関数が、明示的に宣言された入力の後に入力を受け取らない場合、varargin は空の cell 配列です。

すべて折りたたむ

acceptVariableNumInputs.m というファイルに、可変個の入力を受け入れて各入力値を表示する関数を定義します。

type acceptVariableNumInputs
function acceptVariableNumInputs(varargin)
    disp("Number of input arguments: " + nargin)
    celldisp(varargin)
end

複数の入力を指定してこの関数を呼び出します。

acceptVariableNumInputs(ones(3),'some text',pi)
Number of input arguments: 3
 
ans{1} =
 
     1     1     1
     1     1     1
     1     1     1

 
 
ans{2} =
 
some text
 
 
ans{3} =
 
    3.1416

 

definedAndVariableNumInputs.m というファイルに、2 つの入力を想定し、さらに任意の数の追加入力も受け入れる関数を定義します。

type definedAndVariableNumInputs
function definedAndVariableNumInputs(X,Y,varargin)
    disp("Total number of input arguments: " + nargin)
    
    formatSpec = "Size of varargin cell array: %dx%d";
    str = compose(formatSpec,size(varargin));
    disp(str)

end

複数の入力を指定してこの関数を呼び出します。

definedAndVariableNumInputs(7,pi,rand(4),datetime('now'),'hello')
Total number of input arguments: 5
Size of varargin cell array: 1x3

2 つの入力を指定してこの関数を呼び出します。varargin は空の cell 配列になります。

definedAndVariableNumInputs(13,42)
Total number of input arguments: 2
Size of varargin cell array: 0x0

variableNumInputAndOutput.m というファイルに、可変個の入力と出力を受け入れる関数を定義します。

type variableNumInputAndOutput
function varargout = variableNumInputAndOutput(varargin)
    disp(['Number of provided inputs: ' num2str(length(varargin))])
    disp(['Number of requested outputs: ' num2str(nargout)])
    
    for k = 1:nargout
        varargout{k} = k;
    end
end

2 つの入力と 3 つの出力を指定して、この関数を呼び出します。

[d g p] = variableNumInputAndOutput(6,'Nexus')
Number of provided inputs: 2
Number of requested outputs: 3
d = 1
g = 2
p = 3

入力と出力を何も指定せずに、もう一度この関数を呼び出します。

variableNumInputAndOutput
Number of provided inputs: 0
Number of requested outputs: 0

作業フォルダーのファイルで、赤のラインをプロットする関数 plot のラッパーを作成します。関数 redplot は、可変長の入力引数リストを受け入れ、可変長の出力引数リストを返します。これにより、ラインの色が赤に設定され、他の入力値が関数 plot に転送されます。この関数ラッパーを使用すると、redplotplot と同じ入力を渡すことができ、ラインの色を赤に指定する必要がありません。

type redplot.m
function varargout = redplot(varargin)
    [varargout{1:nargout}] = plot(varargin{:},'Color',[1,0,0]);
end

redplot を使用してライン プロットを作成します。

x = 0:pi/100:2*pi;
y = sin(x);
redplot(x,y)

もう一度 redplot を呼び出し、関数 plot に転送する入力と出力を指定します。

h = redplot(x,y,'Marker','o','MarkerEdgeColor','green'); 

R2006a より前に導入

この情報は役に立ちましたか?