comparison scripts/plot/private/__scatter__.m @ 17415:a5de727e3795

__scatter__.m: Fix handling of NaNs in marker size param.
author Andreas Weber <andreas.weber@hs-offenburg.de>
date Wed, 11 Sep 2013 10:32:06 +0200
parents 5e552cd9315a
children c39fa414b5ab
comparison
equal deleted inserted replaced
17414:3611ebb0ad88 17415:a5de727e3795
28 fcn = varargin{3}; 28 fcn = varargin{3};
29 x = varargin{4}(:); 29 x = varargin{4}(:);
30 y = varargin{5}(:); 30 y = varargin{5}(:);
31 31
32 if (nd == 2) 32 if (nd == 2)
33 idx = isnan (x) | isnan (y); 33 istart = 6;
34 x(idx) = []; 34 else
35 y(idx) = []; 35 z = varargin{6}(:);
36 istart = 7;
37 endif
38
39 if (istart <= nargin)
40 s = varargin{istart}(:);
41 if (isempty (s) || ischar (s))
42 s = 6;
43 endif
44 if (! ischar (varargin{istart}))
45 istart++;
46 endif
47 else
48 s = 6;
49 endif
50
51 ## Remove NaNs
52 idx = isnan (x) | isnan (y) | isnan (s);
53 if (nd == 3)
54 idx |= isnan (z);
55 z(idx) = [];
56 endif
57 x(idx) = [];
58 y(idx) = [];
59 if (nd == 2)
36 z = zeros (length (x), 0); 60 z = zeros (length (x), 0);
37 istart = 6; 61 endif
38 else 62 if (numel (s) > 1)
39 z = varargin{6}(:); 63 s(idx) = [];
40 idx = isnan (x) | isnan (y) | isnan (z);
41 x(idx) = [];
42 y(idx) = [];
43 z(idx) = [];
44 istart = 7;
45 endif 64 endif
46 65
47 firstnonnumeric = find (! cellfun ("isnumeric", varargin(istart:nargin)), 1); 66 firstnonnumeric = find (! cellfun ("isnumeric", varargin(istart:nargin)), 1);
48 if (isempty (firstnonnumeric)) 67 if (isempty (firstnonnumeric))
49 firstnonnumeric = Inf; 68 firstnonnumeric = Inf;
50 else 69 else
51 firstnonnumeric += istart - 1; 70 firstnonnumeric += istart - 1;
52 endif
53
54 if (istart <= nargin)
55 s = varargin{istart};
56 if (isempty (s) || ischar (s))
57 s = 6;
58 endif
59 if (! ischar (varargin{istart}))
60 istart++;
61 endif
62 else
63 s = 6;
64 endif 71 endif
65 72
66 if (istart <= nargin && firstnonnumeric > istart) 73 if (istart <= nargin && firstnonnumeric > istart)
67 c = varargin{istart}; 74 c = varargin{istart};
68 if (isvector (c) && columns (c) != 3) 75 if (isvector (c) && columns (c) != 3)