Mercurial > hg > octave-lyh
comparison scripts/plot/compass.m @ 9502:69a57c59868c
compass.m, feather.m: simplify argument processing
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 06 Aug 2009 15:09:53 -0400 |
parents | 16f53d29049f |
children | 95c3e38098bf |
comparison
equal
deleted
inserted
replaced
9501:3c40d81c197f | 9502:69a57c59868c |
---|---|
47 function retval = compass (varargin) | 47 function retval = compass (varargin) |
48 | 48 |
49 [h, varargin, nargin] = __plt_get_axis_arg__ ("compass", varargin{:}); | 49 [h, varargin, nargin] = __plt_get_axis_arg__ ("compass", varargin{:}); |
50 | 50 |
51 arrowsize = 0.25; | 51 arrowsize = 0.25; |
52 firstnonnumeric = Inf; | |
53 for i = 1:nargin | |
54 if (! isnumeric (varargin{i})) | |
55 firstnonnumeric = i; | |
56 break; | |
57 endif | |
58 endfor | |
59 | 52 |
60 if (nargin < 2 || firstnonnumeric < 2) | 53 if (nargin == 0) |
54 print_usage (); | |
55 elseif (nargin == 1 || (nargin == 2 && ! isnumeric (varargin{2}))) | |
61 ioff = 2; | 56 ioff = 2; |
62 z = varargin {1} (:) .'; | 57 z = varargin{1}(:).'; |
63 u = real (z); | 58 u = real (z); |
64 v = imag (z); | 59 v = imag (z); |
65 else | 60 elseif (nargin > 1 && isnumeric (varargin{2})) |
66 ioff = 3; | 61 ioff = 3; |
67 u = varargin {1} (:) .'; | 62 u = varargin{1}(:).'; |
68 v = varargin {2} (:) .'; | 63 v = varargin{2}(:).'; |
69 endif | 64 endif |
70 | 65 |
71 line_spec = "b-"; | 66 line_spec = "b-"; |
67 have_line_spec = false; | |
72 while (ioff <= nargin) | 68 while (ioff <= nargin) |
73 arg = varargin{ioff++}; | 69 arg = varargin{ioff++}; |
74 if ((ischar (arg) || iscell (arg)) && ! have_line_spec) | 70 if ((ischar (arg) || iscell (arg)) && ! have_line_spec) |
75 [linespec, valid] = __pltopt__ ("compass", arg, false); | 71 [linespec, valid] = __pltopt__ ("compass", arg, false); |
76 if (valid) | 72 if (valid) |
77 line_spec = arg; | 73 line_spec = arg; |
74 have_line_spec = true; | |
78 break; | 75 break; |
79 else | 76 else |
80 error ("compass: invalid linespec"); | 77 error ("compass: invalid linespec"); |
81 endif | 78 endif |
82 else | 79 else |