Home > gmmbayestb-v1.0 > getargs.m

getargs

PURPOSE ^

GETARGS parse variable argument list into a struct

SYNOPSIS ^

function S = getargs(defaultS, varglist);

DESCRIPTION ^

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 <paalanen@lut.fi>

 $name$
 $Id: getargs.m,v 1.1 2004/11/02 08:32:22 paalanen Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 %GETARGS  parse variable argument list into a struct
0002 %
0003 % S = GETARGS(defaultS, varglist)
0004 %
0005 % varglist - a cell array of name, value pairs
0006 % defaultS - struct containing the default values
0007 %
0008 % Example:
0009 %   function foo(par1, varargin);
0010 %   args = struct( 'param1', 0, 'param2', eye(3) );
0011 %   args = getargs( args, varargin );
0012 %   disp(args.param1);
0013 %
0014 %  foo(2, 'param1', 14) will print 14
0015 %
0016 % Author:
0017 %   Pekka Paalanen <paalanen@lut.fi>
0018 %
0019 % $name$
0020 % $Id: getargs.m,v 1.1 2004/11/02 08:32:22 paalanen Exp $
0021 
0022 function S = getargs(defaultS, varglist);
0023 
0024 if mod(length(varglist),2) ~=0
0025     error('Odd number of variable parameters');
0026 end
0027 
0028 S = defaultS;
0029 i=1;
0030 while i <= length(varglist)
0031     if isfield(S, varglist{i})
0032         % for Matlab R12
0033         %S = setfield(S, varglist{i}, varglist{i+1});
0034         
0035         % for Matlab R13 and above
0036         S.(varglist{i}) = varglist{i+1};
0037     else
0038         warning_wrap('getargs:unknown_param', ...
0039                 ['Unknown parameter "' varglist{i} '"']);
0040     end
0041     i = i+2;
0042 end

Generated on Thu 14-Apr-2005 13:50:22 by m2html © 2003