comparison scripts/plot/axis.m @ 17426:aa380b380315

axis.m: Fix bug when data sets differ in size and dimension (bug #40036). * scripts/plot/axis.m: Consolidate all data sets into a single column vector before finding min/max for tight limits.
author Rik <rik@octave.org>
date Mon, 16 Sep 2013 09:15:24 -0700
parents 6dbc866379e2
children 15d592c82abc
comparison
equal deleted inserted replaced
17425:cc7815488981 17426:aa380b380315
331 data = {data}; 331 data = {data};
332 endif 332 endif
333 if (strcmp (scale, "log")) 333 if (strcmp (scale, "log"))
334 tmp = data; 334 tmp = data;
335 data = cellfun (@(x) x(x>0), tmp, "uniformoutput", false); 335 data = cellfun (@(x) x(x>0), tmp, "uniformoutput", false);
336 n = cellfun (@isempty, data); 336 n = cellfun ("isempty", data);
337 data(n) = cellfun (@(x) x(x<0), tmp(n), "uniformoutput", false); 337 data(n) = cellfun (@(x) x(x<0), tmp(n), "uniformoutput", false);
338 endif 338 endif
339 data = cellfun (@(x) x(isfinite (x)), data, "uniformoutput", false); 339 data = cellfun (@(x) x(isfinite (x)), data, "uniformoutput", false);
340 data = data(! cellfun ("isempty", data)); 340 data = data(! cellfun ("isempty", data));
341 if (! isempty (data)) 341 if (! isempty (data))
342 lims_min = min ([data{:}](:)); 342 ## Change data from cell array of various sizes to a single column vector
343 lims_max = max ([data{:}](:)); 343 data = cat (1, cellindexmat (data, ":"){:});
344 lims = [lims_min, lims_max]; 344 lims = [min(data), max(data)];
345 else 345 else
346 lims = [0, 1]; 346 lims = [0, 1];
347 endif 347 endif
348 endif 348 endif
349 349