Main Content

可変長の出力のサポート

この例では、varargout を使って可変長の出力引数を返す関数を定義する方法を示します。出力 varargout は関数出力が含まれた cell 配列で、各出力は別々のセルに入っています。

magicfill.m というファイルに関数を作成し、要求された出力ごとに魔方陣を代入します。

function varargout = magicfill
   nOutputs = nargout;
   varargout = cell(1,nOutputs);

   for k = 1:nOutputs
      varargout{k} = magic(k);
   end

中かっこ {} を使ったインデックスでセルの内容を更新します。

magicfill を呼び出し、3 つの出力を要求します。

[first,second,third] = magicfill
first =
     1

second =
     1     3
     4     2

third =
     8     1     6
     3     5     7
     4     9     2

MATLAB® は、varargout 配列の順序に従って各出力に値を代入します。たとえば、first == varargout{1} のようになります。

varargout は出力引数リストに単独で使用することができ、次のように出力のリストの最後に指定することもできます。

function [x,y,varargout] = myfunction(a,b)

この場合、varargout{1} は関数から返される 3 番目の出力に対応し、nargout によって length(varargout) + 2 が返されます。

参考

|

関連する例

詳細