⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse_parameter_list.m

📁 JPEG2000算法
💻 M
字号:
% PARSE_PARAMETER_LIST  Read/convert/return argument lists in various formats.%% Make a parameter structure of a parameter list:%   st=parse_parameter_list({'parameter1','value1','parameter2','value2'....})%% Make a parameter structure of a parameter list:%   st=parse_parameter_list({'parameter1=value1','parameter2=value2'....})%% Separate parameters of parameter list to second structure:%   [st,st2]=parse_parameter_list({'parameter1','value1','parameter2','value2'....},'seppar1',.... )%% Separate parameters of parameter structure to second structure:%   [st,st2]=parse_parameter_list(st,'seppar1',.... )%% Make a parameter list of a parameter structure:%   lst=parse_parameter_list('cell',st)%% Convert strings to numbers in struct if possible:%   lst=parse_parameter_list('str2num',st)%%%% 2002-11-06 Peter Rydes鋞er%function [st,st2,optexist]=parse_parameter_list(varargin)  st2=struct([]);  exist=[];  if ischar(varargin{1})    mode=varargin{1};    indata=varargin{2};    varargin=varargin(3:end);  else    mode='';    indata=varargin{1};    varargin=varargin(2:end);  end  if ischar(indata)    lst={};    indata=local_trim(indata);    while length(indata),      [arg,indata]=strtok(indata);      lst{end+1}=local_trim(arg);            indata=local_trim(indata);          end    indata=lst;  end  if isstruct(indata),    st=indata;  elseif iscell(indata),    lst={};    for arg=indata,      arg=arg{1};      if isnumeric(arg), arg=num2str(arg); end      idx=find(arg=='=');      if isempty(idx),	lst{end+1}=arg;      else	lst{end+1}=arg(1:idx(1)-1);	lst{end+1}=arg(idx(1)+1:end);      end    end    st=struct(lst{:});  end   for arg=varargin,    arg=arg{1};    if isfield(st,arg),      eval( ['st2(1).' arg '=getfield(st,arg);'] );      st=rmfield(st,arg);      eval( ['optexist(1).' arg '=1;'] );    else      eval( ['optexist(1).' arg '=0;'] );    end  end  switch mode   case {'struct' ''}    %Just pass out as is   case 'cell'    lst=cell(1,length(fieldnames(st))*2);    lst(1:2:end)=fieldnames(st);    lst(2:2:end)=struct2cell(st);    st=lst;   case 'str2num'    st=strfields2num(st);   case 'num2str'    st=strfields2num(st);   case 'jasper'    if length(fieldnames(st))==0;      st='';    else      st=numfields2str(st);      st=parse_parameter_list('cell',st);      st=sprintf(' -O %s=%s ',st{:});    end  end  return  function st=strfields2num(st)  for fld=fieldnames(st)',    value=getfield(st,fld{1});    if ischar(value) & length(str2num(value)),      st=setfield(st,fld{1},str2num(value));    end  end  return;  function st=numfields2str(st)  for fld=fieldnames(st)',    value=getfield(st,fld{1});    if isnumeric(value),      st=setfield(st,fld{1},num2str(value,'%.20g'));    end  end  return;function str=local_trim(str)  str=deblank(str(end:-1:1));  str=deblank(str(end:-1:1));  return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -