comparison scripts/plot/findobj.m @ 10549:95c3e38098bf

Untabify .m scripts
author Rik <code@nomad.inbox5.com>
date Fri, 23 Apr 2010 11:28:50 -0700
parents dbd0c77e575e
children be55736a0783
comparison
equal deleted inserted replaced
10548:479536c5bb10 10549:95c3e38098bf
82 h = zeros (0, 1); 82 h = zeros (0, 1);
83 return; 83 return;
84 endif 84 endif
85 if (n1 <= nargin) 85 if (n1 <= nargin)
86 if (ischar (varargin{n1})) 86 if (ischar (varargin{n1}))
87 if (strcmpi (varargin{n1}, "flat")) 87 if (strcmpi (varargin{n1}, "flat"))
88 depth = 0; 88 depth = 0;
89 n1 = n1 + 1; 89 n1 = n1 + 1;
90 elseif (strcmpi (varargin{n1}, "-depth")) 90 elseif (strcmpi (varargin{n1}, "-depth"))
91 depth = varargin{n1+1}; 91 depth = varargin{n1+1};
92 n1 = n1 + 2; 92 n1 = n1 + 2;
93 endif 93 endif
94 else 94 else
95 error ("findobj: properties and options must be strings"); 95 error ("findobj: properties and options must be strings");
96 endif 96 endif
97 endif 97 endif
98 endif 98 endif
99 99
100 if (n1 <= nargin && nargin > 0) 100 if (n1 <= nargin && nargin > 0)
115 regularexpression(np) = 0; 115 regularexpression(np) = 0;
116 property(np) = 0; 116 property(np) = 0;
117 logicaloperator{np} = "and"; 117 logicaloperator{np} = "and";
118 if (ischar (args{na})) 118 if (ischar (args{na}))
119 if (strcmpi (args{na}, "-regexp")) 119 if (strcmpi (args{na}, "-regexp"))
120 if (na + 2 <= numel (args)) 120 if (na + 2 <= numel (args))
121 regularexpression(np) = 1; 121 regularexpression(np) = 1;
122 na = na + 1; 122 na = na + 1;
123 pname{np} = args{na}; 123 pname{np} = args{na};
124 na = na + 1; 124 na = na + 1;
125 pvalue{np} = args{na}; 125 pvalue{np} = args{na};
126 na = na + 1; 126 na = na + 1;
127 np = np + 1; 127 np = np + 1;
128 else 128 else
129 error ("findobj: inconsistent number of arguments"); 129 error ("findobj: inconsistent number of arguments");
130 endif 130 endif
131 elseif (strcmpi (args{na}, "-property")) 131 elseif (strcmpi (args{na}, "-property"))
132 if (na + 1 <= numel (args)) 132 if (na + 1 <= numel (args))
133 na = na + 1; 133 na = na + 1;
134 property(np) = 1; 134 property(np) = 1;
135 pname{np} = args{na}; 135 pname{np} = args{na};
136 na = na + 1; 136 na = na + 1;
137 pvalue{np} = []; 137 pvalue{np} = [];
138 np = np + 1; 138 np = np + 1;
139 else 139 else
140 error ("findobj: inconsistent number of arguments"); 140 error ("findobj: inconsistent number of arguments");
141 endif 141 endif
142 elseif (! strcmp (args{na}(1), "-")) 142 elseif (! strcmp (args{na}(1), "-"))
143 ## Parameter/value pairs. 143 ## Parameter/value pairs.
144 if (na + 1 <= numel (args)) 144 if (na + 1 <= numel (args))
145 pname{np} = args{na}; 145 pname{np} = args{na};
146 na = na + 1; 146 na = na + 1;
147 pvalue{np} = args{na}; 147 pvalue{np} = args{na};
148 na = na + 1; 148 na = na + 1;
149 if (na <= numel(args)) 149 if (na <= numel(args))
150 if (ischar (args{na})) 150 if (ischar (args{na}))
151 if strcmpi(args{na}, "-and") 151 if strcmpi(args{na}, "-and")
152 logicaloperator{np} = "and"; 152 logicaloperator{np} = "and";
153 na = na+1; 153 na = na+1;
154 elseif strcmpi(args{na}, "-or") 154 elseif strcmpi(args{na}, "-or")
155 logicaloperator{np} = "or"; 155 logicaloperator{np} = "or";
156 na = na+1; 156 na = na+1;
157 elseif strcmpi(args{na}, "-xor") 157 elseif strcmpi(args{na}, "-xor")
158 logicaloperator{np} = "xor"; 158 logicaloperator{np} = "xor";
159 na = na+1; 159 na = na+1;
160 elseif strcmpi(args{na}, "-not") 160 elseif strcmpi(args{na}, "-not")
161 logicaloperator{np} = "not"; 161 logicaloperator{np} = "not";
162 na = na+1; 162 na = na+1;
163 endif 163 endif
164 else 164 else
165 error ("findobj: properties and options must be strings"); 165 error ("findobj: properties and options must be strings");
166 endif 166 endif
167 else 167 else
168 logicaloperator{np} = "and"; 168 logicaloperator{np} = "and";
169 endif 169 endif
170 np = np + 1; 170 np = np + 1;
171 else 171 else
172 error ("findobj: inconsistent number of arguments"); 172 error ("findobj: inconsistent number of arguments");
173 endif 173 endif
174 else 174 else
175 ## This is sloppy ... but works like Matlab. 175 ## This is sloppy ... but works like Matlab.
176 if strcmpi(args{na}, "-not") 176 if strcmpi(args{na}, "-not")
177 h = []; 177 h = [];
178 return 178 return
179 endif 179 endif
180 na = na + 1; 180 na = na + 1;
181 endif 181 endif
182 else 182 else
183 error ("findobj: properties and options must be strings"); 183 error ("findobj: properties and options must be strings");
184 endif 184 endif
185 endwhile 185 endwhile
202 keepers = ones (size (h)); 202 keepers = ones (size (h));
203 if (numpairs > 0) 203 if (numpairs > 0)
204 for nh = 1 : numel(h) 204 for nh = 1 : numel(h)
205 p = get (h (nh)); 205 p = get (h (nh));
206 for np = 1 : numpairs 206 for np = 1 : numpairs
207 fields = fieldnames (p); 207 fields = fieldnames (p);
208 fieldindex = find (strcmpi (fields, pname{np}), 1); 208 fieldindex = find (strcmpi (fields, pname{np}), 1);
209 if (numel (fieldindex)) 209 if (numel (fieldindex))
210 pname{np} = fields{fieldindex}; 210 pname{np} = fields{fieldindex};
211 if (property(np)) 211 if (property(np))
212 match = 1; 212 match = 1;
213 else 213 else
214 if (regularexpression(np)) 214 if (regularexpression(np))
215 match = regexp (p.(pname{np}), pvalue{np}); 215 match = regexp (p.(pname{np}), pvalue{np});
216 if isempty (match) 216 if isempty (match)
217 match = 0; 217 match = 0;
218 endif 218 endif
219 elseif (numel (p.(pname{np})) == numel (pvalue{np})) 219 elseif (numel (p.(pname{np})) == numel (pvalue{np}))
220 if (ischar (pvalue{np})) 220 if (ischar (pvalue{np}))
221 match = strcmpi (pvalue{np}, p.(pname{np})); 221 match = strcmpi (pvalue{np}, p.(pname{np}));
222 else 222 else
223 match = (pvalue{np} == p.(pname{np})); 223 match = (pvalue{np} == p.(pname{np}));
224 endif 224 endif
225 else 225 else
226 match = 0; 226 match = 0;
227 endif 227 endif
228 match = all (match); 228 match = all (match);
229 endif 229 endif
230 if (strcmpi (logicaloperator{np}, "not")) 230 if (strcmpi (logicaloperator{np}, "not"))
231 keepers(nh) = ! keepers(nh) & ! match; 231 keepers(nh) = ! keepers(nh) & ! match;
232 else 232 else
233 keepers(nh) = feval (logicaloperator{np}, keepers(nh), match); 233 keepers(nh) = feval (logicaloperator{np}, keepers(nh), match);
234 endif 234 endif
235 else 235 else
236 keepers(nh) = 0; 236 keepers(nh) = 0;
237 endif 237 endif
238 endfor 238 endfor
239 endfor 239 endfor
240 endif 240 endif
241 241
242 h = h (keepers != 0); 242 h = h (keepers != 0);