annotate scripts/plot/compass.m @ 15063:36cbcc37fdb8

Refactor configure.ac to make it more understandable. Use common syntax for messages in config.h Correct typos, refer to libraries in all caps, use two spaces after period. Follow Autoconf guidelines and place general tests before specific tests. * configure.ac, m4/acinclude.m4: Use common syntax for messages in config.h Correct typos, refer to libraries in all caps, use two spaces after period. Follow Autoconf guidelines and place general tests before specific tests.
author Rik <rik@octave.org>
date Tue, 31 Jul 2012 10:28:51 -0700
parents ce2b59a6d0e5
children f17d9a574645
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14138
72c96de7a403 maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents: 14092
diff changeset
1 ## Copyright (C) 2007-2012 David Bateman
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
2 ##
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
3 ## This file is part of Octave.
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
4 ##
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
8 ## your option) any later version.
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
9 ##
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
13 ## General Public License for more details.
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
14 ##
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
18
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
19 ## -*- texinfo -*-
10793
be55736a0783 Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents: 10549
diff changeset
20 ## @deftypefn {Function File} {} compass (@var{u}, @var{v})
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
21 ## @deftypefnx {Function File} {} compass (@var{z})
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
22 ## @deftypefnx {Function File} {} compass (@dots{}, @var{style})
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
23 ## @deftypefnx {Function File} {} compass (@var{h}, @dots{})
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
24 ## @deftypefnx {Function File} {@var{h} =} compass (@dots{})
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
25 ##
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
26 ## Plot the @code{(@var{u}, @var{v})} components of a vector field emanating
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
27 ## from the origin of a polar plot. If a single complex argument @var{z} is
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
28 ## given, then @code{@var{u} = real (@var{z})} and @code{@var{v} = imag
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
29 ## (@var{z})}.
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
30 ##
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
31 ## The style to use for the plot can be defined with a line style @var{style}
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
32 ## in a similar manner to the line styles used with the @code{plot} command.
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
33 ##
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11587
diff changeset
34 ## The optional return value @var{h} is a vector of graphics handles to the
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11587
diff changeset
35 ## line objects representing the drawn vectors.
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
36 ##
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
37 ## @example
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
38 ## @group
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11587
diff changeset
39 ## a = toeplitz ([1;randn(9,1)], [1,randn(1,9)]);
14327
4d917a6a858b doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
40 ## compass (eig (a));
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
41 ## @end group
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
42 ## @end example
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
43 ##
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11587
diff changeset
44 ## @seealso{polar, quiver, feather, plot}
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
45 ## @end deftypefn
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
46
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
47 function retval = compass (varargin)
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
48
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
49 [h, varargin, nargin] = __plt_get_axis_arg__ ("compass", varargin{:});
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
50
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
51 arrowsize = 0.25;
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
52
9502
69a57c59868c compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents: 9245
diff changeset
53 if (nargin == 0)
69a57c59868c compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents: 9245
diff changeset
54 print_usage ();
69a57c59868c compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents: 9245
diff changeset
55 elseif (nargin == 1 || (nargin == 2 && ! isnumeric (varargin{2})))
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
56 ioff = 2;
9502
69a57c59868c compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents: 9245
diff changeset
57 z = varargin{1}(:).';
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
58 u = real (z);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
59 v = imag (z);
9502
69a57c59868c compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents: 9245
diff changeset
60 elseif (nargin > 1 && isnumeric (varargin{2}))
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
61 ioff = 3;
9502
69a57c59868c compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents: 9245
diff changeset
62 u = varargin{1}(:).';
69a57c59868c compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents: 9245
diff changeset
63 v = varargin{2}(:).';
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
64 endif
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
65
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
66 line_spec = "b-";
9502
69a57c59868c compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents: 9245
diff changeset
67 have_line_spec = false;
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
68 while (ioff <= nargin)
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
69 arg = varargin{ioff++};
7768
a2d9f325b65a Use isschar instead of deprecated isstr
Rafael Laboissiere <rafael@debian.org>
parents: 7322
diff changeset
70 if ((ischar (arg) || iscell (arg)) && ! have_line_spec)
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
71 [linespec, valid] = __pltopt__ ("compass", arg, false);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
72 if (valid)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 9502
diff changeset
73 line_spec = arg;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 9502
diff changeset
74 have_line_spec = true;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 9502
diff changeset
75 break;
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
76 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 9502
diff changeset
77 error ("compass: invalid linespec");
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
78 endif
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
79 else
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
80 error ("compass: unrecognized argument");
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
81 endif
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
82 endwhile
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
83
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
84 ## Matlab draws compass plots, with the arrow head as one continous
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
85 ## line, and each arrow separately. This is completely different than
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
86 ## quiver and quite ugly.
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
87 n = length (u);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
88 xend = u;
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
89 xtmp = u .* (1 - arrowsize);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
90 yend = v;
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
91 ytmp = v .* (1 - arrowsize);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
92 x = [zeros(1, n); xend; xtmp - v * arrowsize / 3; xend; ...
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
93 xtmp + v * arrowsize / 3];
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
94 y = [zeros(1, n); yend; ytmp + u * arrowsize / 3; yend; ...
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
95 ytmp - u * arrowsize / 3];
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
96 [r, p] = cart2pol (x, y);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
97
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
98 oldh = gca ();
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
99 unwind_protect
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
100 axes (h);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
101 newplot ();
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
102 hlist = polar (h, r, p, line_spec);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
103 unwind_protect_cleanup
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
104 axes (oldh);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
105 end_unwind_protect
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
106
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
107 if (nargout > 0)
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
108 retval = hlist;
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
109 endif
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
110
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
111 endfunction
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
112
11363
a0dfd7e8e3e2 Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
113
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents:
diff changeset
114 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
115 %! clf;
11363
a0dfd7e8e3e2 Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
116 %! randn_9x1_data = [-2.555884; 0.394974; -0.191871; -1.147024; 1.355425; -0.437335; -0.014370; -0.941312; 1.240300];
a0dfd7e8e3e2 Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
117 %! randn_1x9_data = [1.42934, -1.10821, -1.70404, 0.63357, -0.68337, -1.19771, -0.96502, -1.12810, 0.22457];
a0dfd7e8e3e2 Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
118 %! a = toeplitz ([1;randn_9x1_data], [1,randn_1x9_data]);
a0dfd7e8e3e2 Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
119 %! compass (eig (a));
a0dfd7e8e3e2 Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
120