setparm.m
来自「StaMps最新测试版」· M 代码 · 共 133 行
M
133 行
function []=setparm(parmname,value,newflag)%SETPARM sets parameters in a saved workspace% SETPARM(PARMNAME,VALUE,FLAG) % Only enough characters of PARMNAME to make it unique need be typed.% If VALUE is set to nan, the parameter is reset to the default value. % FLAG is optional, valid values are:% 1 = add a new parameter (PARMNAME must be typed in full)% 2 = add a new parameter to the local parameter workspace% -1 = delete parameter from workspace(VALUE ignored)% -2 = delete parameter from local workspace (VALUE ignored)%% Andy Hooper, June 2006%% 07/2006 AH Add patch compatibilty% 03/2007 AH Support for local parameter workspace added% 10/2007 AH Parameters displayed in alphabetical order% 12/2007 AH Add option to reset to a parameter to the default value% 03/2008 AH Default processing amendedparmfile='parms';localparmfile='localparms.mat';if exist('./parms.mat','file') parms=load(parmfile);elseif exist('../parms.mat','file') parmfile='../parms'; parms=load(parmfile);else parms=struct();endif exist(localparmfile,'file') localparms=load(localparmfile);else localparms=struct('Created',date);endif nargin>2 & newflag==1 if isnumeric(value) disp([parmname,' = ',num2str(value)]) else disp([parmname,' = ',value]) end parms=setfield(parms,parmname,value); save(parmfile,'-struct','parms') else if nargin>1 if ~isnumeric(parmname) parmnum=strmatch(parmname,fieldnames(parms)); if length(parmnum)>1 error(['Parameter ',parmname,'* is not unique']) elseif isempty(parmnum) error(['Parameter ',parmname,'* does not exist']) end else parmnum=parmname; end parmnames=fieldnames(parms); if size(parmnames,1)<parmnum error(['There are only ',num2str(size(parmnames,1)),' fields']) end parmname=parmnames{parmnum}; if isnan(value) if strcmpi(parmname,'small_baseline_flag') error('Default reset option not possible for small_baselines_flag') end parms=rmfield(parms,parmname); save(parmfile,'-struct','parms') if isfield(localparms,parmname) localparms=rmfield(localparms,parmname); save(localparmfile,'-struct','localparms') end % AH 03/2008 %if strcmpi(parms.small_baseline_flag,'y') % sb_parms_default %end ps_parms_default value=getparm(parmname); disp([parmname,' reset to default value']) end if isnumeric(value) disp([parmname,' = ',num2str(value)]) else disp([parmname,' = ',value]) end if nargin>2 if newflag==2 localparms=setfield(localparms,parmname,value); save(localparmfile,'-struct','localparms') disp('Added to LOCAL parameter file') elseif newflag==-1 parms=rmfield(parms,parmname); save(parmfile,'-struct','parms') disp([parmname,' removed from parameter file']) elseif newflag==-2 localparms=rmfield(localparms,parmname); if size(fieldnames(localparms),1)>1 save(localparmfile,'-struct','localparms') else delete(localparmfile) end disp([parmname,' removed from LOCAL parameter file']) else error('Invalid value for NEWFLAG') end else if ~isfield(localparms,parmname) parms=setfield(parms,parmname,value); save(parmfile,'-struct','parms') else localparms=setfield(localparms,parmname,value); save(localparmfile,'-struct','localparms') disp('Warning: Only LOCAL parameter file updated') end end elseif nargin >0 error('Format is: SETPARM(PARMNAME,VALUE,[NEWFLAG])') else disp(orderfields(parms)) if size(fieldnames(localparms),1)>1 localparms end endend
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?