Mercurial > hg > ltpda
diff m-toolbox/classes/+utils/@plottools/islinespec.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/+utils/@plottools/islinespec.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,121 @@ +function varargout = islinespec(str) +% ISLINESPEC checks a string to the line spec syntax. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% DESCRIPTION: ISLINESPEC checks a string to the line spec syntax. +% +% CALL: ret = islinespec(str); +% [style_array ret] = islinespec(str); +% +% REMARK: The style_array is a cell array with the line style, marker style +% and the color style. +% style_array{1}: line style +% style_array{2}: marker style +% style_array{3}: color style +% +% VERSION: $Id: islinespec.m,v 1.1 2008/10/10 11:04:59 ingo Exp $ +% +% HISTORY: 21-08-2007 Diepholz +% Creation +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + if nargin == 0 + str = ''; + elseif nargin == 1 + if ~ischar(str) + error('### The type of the input argument must be a ''char''.'); + end + else + error('### Unknown nuber of inputs.'); + end + + line_style = {'-.', '--', '-', ':'}; + full_name_marker_style = {'square', 'diamond', 'pentagram' , 'hexagram'}; + marker_style = {'+', 'o', 'O', '*', '.', 'x', '^', ... + '<', '>', 's', 'd', 'h', 'p', }; + full_name_color_style = {'red', 'green', 'cyan', 'yellow', ... + 'white', 'blue', 'magenta', 'black'}; + color_style = {'r', 'g', 'c', 'y', 'w', 'b', 'm', 'k'}; + + out_line_style = ''; + out_marker_style = ''; + out_color_style = ''; + + copy_str = str; + found_marker_style = false; + found_color_style = false; + + %%%%%%%%%% Check the line_style %%%%%%%%%% + for ii = 1:length(line_style) + idx = strfind(copy_str, line_style{ii}); + if ~isempty(idx) + copy_str = strrep(copy_str, line_style{ii}, ''); + out_line_style = line_style{ii}; + break; + end + end + + %%%%%%%%%% Check full name marker style %%%%%%%%%% + for ii = 1:length(full_name_marker_style) + idx = strfind(copy_str, full_name_marker_style{ii}); + if ~isempty(idx) + copy_str = strrep(copy_str, full_name_marker_style{ii}, ''); + out_marker_style = full_name_marker_style{ii}; + found_marker_style = true; + break; + end + end + + %%%%%%%%%% Check full name color style %%%%%%%%%% + for ii = 1:length(full_name_color_style) + idx = strfind(copy_str, full_name_color_style{ii}); + if ~isempty(idx) + copy_str = strrep(copy_str, full_name_color_style{ii}, ''); + out_color_style = full_name_color_style{ii}; + found_color_style = true; + break; + end + end + + %%%%%%%%%% Check full marker style %%%%%%%%%% + if found_marker_style == false + for ii = 1:length(marker_style) + idx = strfind(copy_str, marker_style{ii}); + if ~isempty(idx) + copy_str = strrep(copy_str, marker_style{ii}, ''); + out_marker_style = marker_style{ii}; + break; + end + end + end + + %%%%%%%%%% Check full color style %%%%%%%%%% + if found_color_style == false + for ii = 1:length(color_style) + idx = strfind(copy_str, color_style{ii}); + if ~isempty(idx) + copy_str = strrep(copy_str, color_style{ii}, ''); + out_color_style = color_style{ii}; + break; + end + end + end + + %%%%%%%%%% Set the output %%%%%%%%%% + if isempty(copy_str) + ret = true; + else + ret = false; + end + + if nargout == 0 || nargout == 1 + varargout{1} = ret; + elseif nargout == 2 + varargout{1} = ret; + varargout{2} = {out_line_style, out_marker_style, out_color_style}; + else + error('### Unknown numbers of outputs.'); + end + +end