0001 function varargout = plot(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 VERSION = '$Id: plot.m,v 1.30 2007/10/24 17:35:28 ingo Exp $';
0030
0031 axes_handle = [];
0032 ao_s = [];
0033 line_spec = '';
0034 prop_val = {};
0035 lines_h = [];
0036
0037
0038 if nargin == 2
0039 if isa(varargin{1}, 'ao') && ischar(varargin{2})
0040 in = char(varargin{2});
0041 if strcmp(in, 'Params')
0042 varargout{1} = plist();
0043 return
0044 elseif strcmp(in, 'Version')
0045 varargout{1} = VERSION;
0046 return
0047 end
0048 end
0049 end
0050
0051
0052 var_argin = varargin;
0053
0054 while ~isempty(var_argin)
0055 if isempty(var_argin{1})
0056 var_argin = var_argin(2:end);
0057 elseif ishandle(var_argin{1}) & isempty(axes_handle)
0058 axes_handle = var_argin{1};
0059 var_argin = var_argin(2:end);
0060 elseif isa(var_argin{1}, 'ao')
0061 var_argin{1} = reshape(var_argin{1}, 1, []);
0062 ao_s = [ao_s var_argin{1}];
0063 var_argin = var_argin(2:end);
0064 elseif ischar(var_argin{1}) && islinespec(var_argin{1}) && isempty(line_spec)
0065 line_spec = var_argin{1};
0066 var_argin = var_argin(2:end);
0067 else
0068 if length(var_argin) == 1
0069 error('### There is only one propery [%s] without value left', var_argin{1});
0070 elseif length(var_argin) >= 2
0071 prop = var_argin{1};
0072 val = var_argin{2};
0073 prop_val = [prop_val, prop, val];
0074 var_argin = var_argin(3:end);
0075 end
0076 end
0077 end
0078
0079
0080
0081
0082 for ii = 1:length(ao_s)
0083
0084
0085 line_colors = getappdata(0, 'ltpda_default_plot_colors');
0086
0087
0088 [res, style] = islinespec(line_spec);
0089
0090 if isempty(style{3})
0091 prop_val{end+1} = 'Color';
0092 prop_val{end+1} = line_colors{ii};
0093 end
0094
0095
0096 [x,y] = get_xy_values(ao_s(ii).data);
0097
0098 if isreal(y)
0099 if isempty(x)
0100 x = 1:length(y);
0101 end
0102 else
0103 if isempty(x)
0104 x = real(y);
0105 y = imag(y);
0106 end
0107 end
0108
0109
0110 if ~isempty(axes_handle) && ~isempty(line_spec)
0111 line_h = plot(axes_handle, x, y, line_spec);
0112 elseif ~isempty(axes_handle)
0113 line_h = plot(axes_handle, x, y);
0114 elseif ~isempty(line_spec)
0115 line_h = plot(x, y, line_spec);
0116 else
0117 line_h = plot(x, y);
0118 end
0119
0120 hold on;
0121
0122 line_h = reshape(line_h, 1, []);
0123 lines_h = [lines_h line_h];
0124
0125
0126 axes_h = get(line_h(1), 'Parent');
0127 figure_h = get(axes_h, 'Parent');
0128
0129
0130 while length(prop_val) >= 2
0131 prop = prop_val{1};
0132 val = prop_val{2};
0133 prop_val = prop_val(3:end);
0134 if isprop(line_h, prop)
0135 set(line_h, prop, val);
0136 else
0137 if isprop(axes_h, prop)
0138 set(axes_h, prop, val);
0139 else
0140 error('### Invalid line property OR axes property: ''%s''.', prop);
0141 end
0142 end
0143 end
0144
0145 end
0146
0147
0148
0149
0150
0151 if nargout == 0
0152 elseif nargout == 1
0153 varargout{1} = lines_h;
0154 elseif nargout == 2
0155 varargout{1} = lines_h;
0156 varargout{2} = axes_h;
0157 elseif nargout == 3
0158 varargout{1} = lines_h;
0159 varargout{2} = axes_h;
0160 varargout{3} = figure_h;
0161 else
0162 error('### Unknown number of outputs.')
0163 end
0164
0165 hold off;
0166
0167 end
0168
0169
0170
0171
0172
0173
0174