How to deal with name/value pairs of function arguments in MATLAB

后端 未结 14 1101
忘掉有多难
忘掉有多难 2020-11-28 19:28

I have a function that takes optional arguments as name/value pairs.

function example(varargin)
% Lots of set up stuff
vargs = varargin;
nargs = length(vargs         


        
14条回答
  •  忘掉有多难
    2020-11-28 19:50

    Inspired by Jonas' answer, but more compact:

    function example(varargin)
      defaults = struct('A',1, 'B',magic(3));  %define default values
    
      params = struct(varargin{:});
      for f = fieldnames(defaults)',
        if ~isfield(params, f{1}),
          params.(f{1}) = defaults.(f{1});
        end
      end
    
      %now just access them as params.A, params.B
    

提交回复
热议问题