Mercurial > hg > octave-lyh
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) |