Index: /proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/classes/plotoptions.m =================================================================== --- /proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/classes/plotoptions.m (revision 11891) +++ /proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/classes/plotoptions.m (revision 11892) @@ -47,8 +47,21 @@ error('buildlist error message: an even number of plotoptions is required') end - %first: build a pairoptions out of varargin: + %go through varargin and build list (like pairoptions) rawoptions=pairoptions(varargin{:}); + numoptions = (nargin-1)/2; + rawlist=cell(numoptions,2); + for i=1:numoptions, + if ischar(varargin{2*i-1}), + rawlist{i,1}=varargin{2*i-1}; + rawlist{i,2}=varargin{2*i}; + else + %option is not a string, ignore it + disp(['WARNING: option number ' num2str(i) ' is not a string, it will be ignored']); + rawlist(i,:)=[]; + continue + end + end %get figure number opt.figurenumber=getfieldvalue(rawoptions,'figure',1); @@ -71,19 +84,19 @@ end %process plot options - for i=1:size(rawoptions.list,1), + for i=1:size(rawlist,1), %If alloptions flag has is on, apply to all plots - if (allflag & ~strcmpi(rawoptions.list{i,1},'data') & ~ismember('#',rawoptions.list{i,1})), + if (allflag & ~strcmpi(rawlist{i,1},'data') & ~ismember('#',rawlist{i,1})), for j=1:numberofplots, - opt.list{j}=addfield(opt.list{j},rawoptions.list{i,1},rawoptions.list{i,2}); + opt.list{j}=addfield(opt.list{j},rawlist{i,1},rawlist{i,2}); end %option contains '#' - elseif ismember('#',rawoptions.list{i,1}), + elseif ismember('#',rawlist{i,1}), %get suplot(s) associated - string=strsplit(rawoptions.list{i,1},'#'); + string=strsplit(rawlist{i,1},'#'); plotnums=string{end}; field=string{1}; @@ -101,7 +114,7 @@ %#all elseif strcmpi(plotnum,'all'); for j=1:numberofplots, - opt.list{j}=addfield(opt.list{j},field,rawoptions.list{i,2}); + opt.list{j}=addfield(opt.list{j},field,rawlist{i,2}); end %#i-j @@ -112,7 +125,7 @@ error(['the option #i-j is not set properly for ' field]); end for j=nums(1):nums(2), - opt.list{j}=addfield(opt.list{j},field,rawoptions.list{i,2}); + opt.list{j}=addfield(opt.list{j},field,rawlist{i,2}); end %#i @@ -121,7 +134,7 @@ if str2num(plotnum)>numberofplots, error(['opt error message: ' field ' cannot be assigned (' plotnum ' exceed maximum number of plot)']); end - opt.list{str2num(plotnum)}=addfield(opt.list{str2num(plotnum)},field,rawoptions.list{i,2}); + opt.list{str2num(plotnum)}=addfield(opt.list{str2num(plotnum)},field,rawlist{i,2}); end end @@ -131,15 +144,15 @@ %go through all subplot and assign to the first one free j=1; while (j<=numberofplots), - if ~exist(opt.list{j},rawoptions.list{i,1}); - opt.list{j}=addfield(opt.list{j},rawoptions.list{i,1},rawoptions.list{i,2}); + if ~exist(opt.list{j},rawlist{i,1}); + opt.list{j}=addfield(opt.list{j},rawlist{i,1},rawlist{i,2}); break else j=j+1; end end if j>numberofplots, - disp(['plot info message: too many ''' rawoptions.list{i,1} ''' options']); + disp(['plot info message: too many ''' rawlist{i,1} ''' options']); end end end