www.pudn.com > GaussEm.rar > getargs.m, change:2005-04-04,size:1099b
%GETARGS parse variable argument list into a struct % % S = GETARGS(defaultS, varglist) % % varglist - a cell array of name, value pairs % defaultS - struct containing the default values % % Example: % function foo(par1, varargin); % args = struct( 'param1', 0, 'param2', eye(3) ); % args = getargs( args, varargin ); % disp(args.param1); % % foo(2, 'param1', 14) will print 14 % % Author: % Pekka Paalanen% % $name$ % $Id: getargs.m,v 1.1 2004/08/16 15:06:44 paalanen Exp $ function S = getargs(defaultS, varglist); if mod(length(varglist),2) ~=0 error('Odd number of variable parameters'); end S = defaultS; i=1; while i <= length(varglist) if isfield(S, varglist{i}) % for Matlab R12 %S = setfield(S, varglist{i}, varglist{i+1}); % for Matlab R13 and above S.(varglist{i}) = varglist{i+1}; else warning_wrap('getargs:unknown_param', ... ['Unknown parameter "' varglist{i} '"']); end i = i+2; end