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