Mercurial > hg > octave-nkf
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 |
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 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
9 ## | |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
16 ## along with Octave; see the file COPYING. If not, see | |
17 ## <http://www.gnu.org/licenses/>. | |
18 | |
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 | 21 ## @deftypefnx {Function File} {} compass (@var{z}) |
22 ## @deftypefnx {Function File} {} compass (@dots{}, @var{style}) | |
23 ## @deftypefnx {Function File} {} compass (@var{h}, @dots{}) | |
24 ## @deftypefnx {Function File} {@var{h} =} compass (@dots{}) | |
25 ## | |
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 | 29 ## (@var{z})}. |
30 ## | |
31 ## The style to use for the plot can be defined with a line style @var{style} | |
32 ## in a similar manner to the line styles used with the @code{plot} command. | |
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 | 36 ## |
37 ## @example | |
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 | 41 ## @end group |
42 ## @end example | |
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 | 45 ## @end deftypefn |
46 | |
47 function retval = compass (varargin) | |
48 | |
49 [h, varargin, nargin] = __plt_get_axis_arg__ ("compass", varargin{:}); | |
50 | |
51 arrowsize = 0.25; | |
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 | 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 | 58 u = real (z); |
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 | 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 | 64 endif |
65 | |
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 | 68 while (ioff <= nargin) |
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 | 71 [linespec, valid] = __pltopt__ ("compass", arg, false); |
72 if (valid) | |
10549 | 73 line_spec = arg; |
74 have_line_spec = true; | |
75 break; | |
7322 | 76 else |
10549 | 77 error ("compass: invalid linespec"); |
7322 | 78 endif |
79 else | |
80 error ("compass: unrecognized argument"); | |
81 endif | |
82 endwhile | |
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 | 86 ## quiver and quite ugly. |
87 n = length (u); | |
88 xend = u; | |
89 xtmp = u .* (1 - arrowsize); | |
90 yend = v; | |
91 ytmp = v .* (1 - arrowsize); | |
92 x = [zeros(1, n); xend; xtmp - v * arrowsize / 3; xend; ... | |
93 xtmp + v * arrowsize / 3]; | |
94 y = [zeros(1, n); yend; ytmp + u * arrowsize / 3; yend; ... | |
95 ytmp - u * arrowsize / 3]; | |
96 [r, p] = cart2pol (x, y); | |
97 | |
98 oldh = gca (); | |
99 unwind_protect | |
100 axes (h); | |
101 newplot (); | |
102 hlist = polar (h, r, p, line_spec); | |
103 unwind_protect_cleanup | |
104 axes (oldh); | |
105 end_unwind_protect | |
106 | |
107 if (nargout > 0) | |
108 retval = hlist; | |
109 endif | |
110 | |
111 endfunction | |
112 | |
11363
a0dfd7e8e3e2
Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
113 |
7322 | 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 |