12345678910111213141516171819202122232425262728293031323334353637383940 |
- function varargout = DefaultArgs(Args, DefArgs)
- % auxillary function to replace argument check in the beginning and def. args assigment
- % sets the absent or empty values of the Args (cell array, usually varargin)
- % to their default values from the cell array DefArgs.
- % Output should contain the actuall names of arguments that you use in the function
- % e.g. : in function MyFunction(somearguments , varargin)
- % calling [SampleRate, BinSize] = DefaultArgs(varargin, {20000, 20});
- % will assign the defualt values to SampleRate and BinSize arguments if they
- % are empty or absent in the varargin cell list
- % (not passed to a function or passed empty)
- if isempty(Args)
- Args ={[]};
- end
- % if iscell(Args) & isstr(Args{1}) & length(Args)==1
- % Args = Args{1};
- % end
-
- if ~iscell(DefArgs)
- DefArgs = {DefArgs};
- end
- nDefArgs = length(DefArgs);
- nInArgs = length(Args);
- %out = cell(nDefArgs,1);
- if (nargout~=nDefArgs)
- error('number of defaults is different from assigned');
- %keyboard
- end
- for i=1:nDefArgs
-
- if (i>nInArgs | isempty(Args{i}))
- varargout(i) = {DefArgs{i}};
- else
- varargout(i) = {Args{i}};
- end
- end
|