1. ホーム
  2. function

[解決済み] MATLAB関数におけるオプションの引数

2022-02-02 13:54:46

質問

MATLABで任意の引数を持つ関数を宣言するにはどうしたらいいですか?

例えば function [a] = train(x, y, opt) ここで、optはオプションの引数でなければなりません。

どのように解決するのですか?

この方法には、いくつかの異なる選択肢があります。最も基本的な方法は varargin を使用し、その後に nargin , size などを使用して、オプションの引数が関数に渡されたかどうかを判断します。

% Function that takes two arguments, X & Y, followed by a variable 
% number of additional arguments
function varlist(X,Y,varargin)
   fprintf('Total number of inputs = %d\n',nargin);

   nVarargs = length(varargin);
   fprintf('Inputs in varargin(%d):\n',nVarargs)
   for k = 1:nVarargs
      fprintf('   %d\n', varargin{k})
   end

もう少し見た目がエレガントなソリューションとしては inputParser クラスで、関数が必要とするすべての引数 (必須とオプションの両方) を定義します。 inputParser また、すべての引数に対して型チェックを行うこともできます。