41 lines
1.1 KiB
Matlab
41 lines
1.1 KiB
Matlab
function opt=varargin2struct(varargin)
|
|
%
|
|
% opt=varargin2struct('param1',value1,'param2',value2,...)
|
|
% or
|
|
% opt=varargin2struct(...,optstruct,...)
|
|
%
|
|
% convert a series of input parameters into a structure
|
|
%
|
|
% authors:Qianqian Fang (fangq<at> nmr.mgh.harvard.edu)
|
|
% date: 2012/12/22
|
|
%
|
|
% input:
|
|
% 'param', value: the input parameters should be pairs of a string and a value
|
|
% optstruct: if a parameter is a struct, the fields will be merged to the output struct
|
|
%
|
|
% output:
|
|
% opt: a struct where opt.param1=value1, opt.param2=value2 ...
|
|
%
|
|
% license:
|
|
% BSD, see LICENSE_BSD.txt files for details
|
|
%
|
|
% -- this function is part of jsonlab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab)
|
|
%
|
|
|
|
len=length(varargin);
|
|
opt=struct;
|
|
if(len==0) return; end
|
|
i=1;
|
|
while(i<=len)
|
|
if(isstruct(varargin{i}))
|
|
opt=mergestruct(opt,varargin{i});
|
|
elseif(ischar(varargin{i}) && i<len)
|
|
opt=setfield(opt,varargin{i},varargin{i+1});
|
|
i=i+1;
|
|
else
|
|
error('input must be in the form of ...,''name'',value,... pairs or structs');
|
|
end
|
|
i=i+1;
|
|
end
|
|
|