I've found that the parseArgs function can be very helpful.
Here's its documentation:
Helper function for parsing varargin
. Makes it easy to write functions that take arguments like this: subaxis(4,2,1,'spacing',0,'marginleft',.1,'H','pt',.1)
ArgStruct=parseArgs(varargin,ArgStruct[,FlagtypeParams[,Aliases]])
ArgStruct
is the structure full of named arguments with default values.
- Flagtype params is params that don't require a value. (the value will be set to 1 if it is present)
- Aliases can be used to map one argument-name to several argstruct fields
example usage:
function parseargtest(varargin)
%define the acceptable named arguments and assign default values
Args=struct('Holdaxis',0, ...
'SpacingVertical',0.05,'SpacingHorizontal',0.05, ...
'PaddingLeft',0,'PaddingRight',0,'PaddingTop',0,'PaddingBottom',0, ...
'MarginLeft',.1,'MarginRight',.1,'MarginTop',.1,'MarginBottom',.1, ...
'rows',[],'cols',[]);
%The capital letters define abrreviations.
% Eg. parseargtest('spacingvertical',0) is equivalent to parseargtest('sv',0)
Args=parseArgs(varargin,Args, ...
% fill the arg-struct with values entered by the user, e.g.
% {'Holdaxis'}, ... %this argument has no value (flag-type)
% {'Spacing' {'sh','sv'}; 'Padding' {'pl','pr','pt','pb'}; 'Margin' {'ml','mr','mt','mb'}});
disp(Args)
if nargin
statemens), easy to maintain, compact, and flexible. – Coss