annotate doc/interpreter/matrix.txi @ 8817:03b7f618ab3d

include docstrings for new functions in the manual
author John W. Eaton <jwe@octave.org>
date Thu, 19 Feb 2009 15:39:19 -0500
parents 68aa5abfd136
children fcba62cc4549
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6778
083721ae3dfa [project @ 2007-07-18 17:03:10 by jwe]
jwe
parents: 6550
diff changeset
1 @c Copyright (C) 1996, 1997, 2007 John W. Eaton
7018
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
2 @c
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
3 @c This file is part of Octave.
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
4 @c
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
5 @c Octave is free software; you can redistribute it and/or modify it
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
6 @c under the terms of the GNU General Public License as published by the
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
7 @c Free Software Foundation; either version 3 of the License, or (at
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
8 @c your option) any later version.
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
9 @c
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
10 @c Octave is distributed in the hope that it will be useful, but WITHOUT
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
13 @c for more details.
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
14 @c
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
15 @c You should have received a copy of the GNU General Public License
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
16 @c along with Octave; see the file COPYING. If not, see
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6868
diff changeset
17 @c <http://www.gnu.org/licenses/>.
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
18
4167
aae05d51353c [project @ 2002-11-12 02:52:50 by jwe]
jwe
parents: 3920
diff changeset
19 @node Matrix Manipulation
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
20 @chapter Matrix Manipulation
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
21
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
22 There are a number of functions available for checking to see if the
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
23 elements of a matrix meet some condition, and for rearranging the
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
24 elements of a matrix. For example, Octave can easily tell you if all
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
25 the elements of a matrix are finite, or are less than some specified
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
26 value. Octave can also rotate the elements, extract the upper- or
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
27 lower-triangular parts, or sort the columns of a matrix.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
28
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
29 @menu
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
30 * Finding Elements and Checking Conditions::
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
31 * Rearranging Matrices::
6550
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
32 * Applying a Function to an Array::
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
33 * Special Utility Matrices::
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
34 * Famous Matrices::
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
35 @end menu
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
36
4167
aae05d51353c [project @ 2002-11-12 02:52:50 by jwe]
jwe
parents: 3920
diff changeset
37 @node Finding Elements and Checking Conditions
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
38 @section Finding Elements and Checking Conditions
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
39
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
40 The functions @code{any} and @code{all} are useful for determining
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
41 whether any or all of the elements of a matrix satisfy some condition.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
42 The @code{find} function is also useful in determining which elements of
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
43 a matrix meet a specified condition.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
44
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
45 @DOCSTRING(any)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
46
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
47 @DOCSTRING(all)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
48
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
49 Since the comparison operators (@pxref{Comparison Ops}) return matrices
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
50 of ones and zeros, it is easy to test a matrix for many things, not just
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
51 whether the elements are nonzero. For example,
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
52
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
53 @example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
54 @group
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
55 all (all (rand (5) < 0.9))
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
56 @result{} 0
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
57 @end group
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
58 @end example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
59
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
60 @noindent
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
61 tests a random 5 by 5 matrix to see if all of its elements are less
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
62 than 0.9.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
63
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
64 Note that in conditional contexts (like the test clause of @code{if} and
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
65 @code{while} statements) Octave treats the test as if you had typed
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
66 @code{all (all (condition))}.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
67
3428
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
68 @DOCSTRING(xor)
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
69
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
70 @DOCSTRING(is_duplicate_entry)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
71
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
72 @DOCSTRING(diff)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
73
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
74 @DOCSTRING(isinf)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
75
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
76 @DOCSTRING(isnan)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
77
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
78 @DOCSTRING(finite)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
79
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
80 @DOCSTRING(find)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
81
3428
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
82 @DOCSTRING(common_size)
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
83
4167
aae05d51353c [project @ 2002-11-12 02:52:50 by jwe]
jwe
parents: 3920
diff changeset
84 @node Rearranging Matrices
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
85 @section Rearranging Matrices
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
86
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
87 @DOCSTRING(fliplr)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
88
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
89 @DOCSTRING(flipud)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
90
4869
b92d59213e63 [project @ 2004-04-21 17:03:02 by jwe]
jwe
parents: 4845
diff changeset
91 @DOCSTRING(flipdim)
b92d59213e63 [project @ 2004-04-21 17:03:02 by jwe]
jwe
parents: 4845
diff changeset
92
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
93 @DOCSTRING(rot90)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
94
4869
b92d59213e63 [project @ 2004-04-21 17:03:02 by jwe]
jwe
parents: 4845
diff changeset
95 @DOCSTRING(rotdim)
b92d59213e63 [project @ 2004-04-21 17:03:02 by jwe]
jwe
parents: 4845
diff changeset
96
4845
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
97 @DOCSTRING(cat)
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
98
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
99 @DOCSTRING(horzcat)
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
100
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
101 @DOCSTRING(vertcat)
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
102
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
103 @DOCSTRING(permute)
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
104
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
105 @DOCSTRING(ipermute)
a9cfb8b37759 [project @ 2004-04-02 20:12:24 by jwe]
jwe
parents: 4457
diff changeset
106
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
107 @DOCSTRING(reshape)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
108
8432
c9cb8f0b8b4f add reference to resize function in the manual
Francesco Potortì <pot@gnu.org>
parents: 8286
diff changeset
109 @DOCSTRING(resize)
c9cb8f0b8b4f add reference to resize function in the manual
Francesco Potortì <pot@gnu.org>
parents: 8286
diff changeset
110
4894
ab5870f984d9 [project @ 2004-06-03 19:32:02 by jwe]
jwe
parents: 4869
diff changeset
111 @DOCSTRING(circshift)
ab5870f984d9 [project @ 2004-06-03 19:32:02 by jwe]
jwe
parents: 4869
diff changeset
112
ab5870f984d9 [project @ 2004-06-03 19:32:02 by jwe]
jwe
parents: 4869
diff changeset
113 @DOCSTRING(shiftdim)
ab5870f984d9 [project @ 2004-06-03 19:32:02 by jwe]
jwe
parents: 4869
diff changeset
114
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
115 @DOCSTRING(shift)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
116
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
117 @DOCSTRING(sort)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
118
6550
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
119 @DOCSTRING(sortrows)
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
120
8817
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8519
diff changeset
121 @DOCSTRING(issorted)
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8519
diff changeset
122
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
123 Since the @code{sort} function does not allow sort keys to be specified,
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
124 it can't be used to order the rows of a matrix according to the values
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
125 of the elements in various columns@footnote{For example, to first sort
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
126 based on the values in column 1, and then, for any values that are
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
127 repeated in column 1, sort based on the values found in column 2, etc.}
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
128 in a single call. Using the second output, however, it is possible to
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
129 sort all rows based on the values in a given column. Here's an example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
130 that sorts the rows of a matrix based on the values in the second
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
131 column.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
132
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
133 @example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
134 @group
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
135 a = [1, 2; 2, 3; 3, 1];
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
136 [s, i] = sort (a (:, 2));
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
137 a (i, :)
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
138 @result{} 3 1
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
139 1 2
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
140 2 3
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
141 @end group
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
142 @end example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
143
8286
6f2d95255911 fix @seealso references to point to existing anchors
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8133
diff changeset
144 @anchor{doc-triu}
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
145 @DOCSTRING(tril)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
146
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
147 @DOCSTRING(vec)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
148
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
149 @DOCSTRING(vech)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
150
8512
137d6c94212f fix missing anchor in matrix.txi
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8432
diff changeset
151 @anchor{doc-postpad}
3428
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
152 @DOCSTRING(prepad)
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
153
6550
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
154 @DOCSTRING(blkdiag)
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
155
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
156 @node Applying a Function to an Array
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
157 @section Applying a Function to an Array
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
158
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
159 @DOCSTRING(arrayfun)
1b7a6061a05d [project @ 2007-04-20 07:40:26 by jwe]
jwe
parents: 6502
diff changeset
160
6868
975fcdfb0d2d [project @ 2007-09-06 16:34:29 by dbateman]
dbateman
parents: 6778
diff changeset
161 @DOCSTRING(bsxfun)
975fcdfb0d2d [project @ 2007-09-06 16:34:29 by dbateman]
dbateman
parents: 6778
diff changeset
162
4167
aae05d51353c [project @ 2002-11-12 02:52:50 by jwe]
jwe
parents: 3920
diff changeset
163 @node Special Utility Matrices
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
164 @section Special Utility Matrices
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
165
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
166 @DOCSTRING(eye)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
167
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
168 @DOCSTRING(ones)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
169
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
170 @DOCSTRING(zeros)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
171
3920
87db95b22f8f [project @ 2002-05-01 04:07:31 by jwe]
jwe
parents: 3428
diff changeset
172 @DOCSTRING(repmat)
87db95b22f8f [project @ 2002-05-01 04:07:31 by jwe]
jwe
parents: 3428
diff changeset
173
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
174 @DOCSTRING(rand)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
175
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
176 @DOCSTRING(randn)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
177
5730
109fdf7b3dcb [project @ 2006-04-03 19:18:26 by jwe]
jwe
parents: 4894
diff changeset
178 @DOCSTRING(rande)
109fdf7b3dcb [project @ 2006-04-03 19:18:26 by jwe]
jwe
parents: 4894
diff changeset
179
109fdf7b3dcb [project @ 2006-04-03 19:18:26 by jwe]
jwe
parents: 4894
diff changeset
180 @DOCSTRING(randp)
109fdf7b3dcb [project @ 2006-04-03 19:18:26 by jwe]
jwe
parents: 4894
diff changeset
181
109fdf7b3dcb [project @ 2006-04-03 19:18:26 by jwe]
jwe
parents: 4894
diff changeset
182 @DOCSTRING(randg)
109fdf7b3dcb [project @ 2006-04-03 19:18:26 by jwe]
jwe
parents: 4894
diff changeset
183
8133
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
184 The generators operate in the new or old style together, it is not
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
185 possible to mix the two. Initializing any generator with
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
186 @code{"state"} or @code{"seed"} causes the others to switch to the
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
187 same style for future calls.
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
188
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
189 The state of each generator is independent and calls to different
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
190 generators can be interleaved without affecting the final result. For
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
191 example,
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
192
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
193 @example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
194 @group
8133
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
195 rand ("state", [11, 22, 33]);
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
196 randn ("state", [44, 55, 66]);
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
197 u = rand (100, 1);
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
198 n = randn (100, 1);
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
199 @end group
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
200 @end example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
201
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
202 @noindent
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
203 and
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
204
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
205 @example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
206 @group
8133
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
207 rand ("state", [11, 22, 33]);
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
208 randn ("state", [44, 55, 66]);
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
209 u = zeros (100, 1);
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
210 n = zeros (100, 1);
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
211 for i = 1:100
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
212 u(i) = rand ();
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
213 n(i) = randn ();
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
214 end
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
215 @end group
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
216 @end example
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
217
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
218 @noindent
8133
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
219 produce equivalent results. When the generators are initialized in
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
220 the old style with @code{"seed"} only @code{rand} and @code{randn} are
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
221 independent, because the old @code{rande}, @code{randg} and
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
222 @code{randp} generators make calls to @code{rand} and @code{randn}.
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
223
8133
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
224 The generators are initialized with random states at start-up, so
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
225 that the sequences of random numbers are not the same each time you run
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
226 Octave.@footnote{The old versions of @code{rand} and @code{randn}
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
227 obtain their initial seeds from the system clock.} If you really do
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
228 need to reproduce a sequence of numbers exactly, you can set the state
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
229 or seed to a specific value.
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
230
8133
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
231 If invoked without arguments, @code{rand} and @code{randn} return a
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
232 single element of a random sequence.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
233
8133
f38997cf9e5b matrix.txi: update docs for random number generators
Brian Gough
parents: 7018
diff changeset
234 The original @code{rand} and @code{randn} functions use Fortran code from
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
235 @sc{Ranlib}, a library of fortran routines for random number generation,
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
236 compiled by Barry W. Brown and James Lovato of the Department of
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
237 Biomathematics at The University of Texas, M.D. Anderson Cancer Center,
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
238 Houston, TX 77030.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
239
3428
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
240 @DOCSTRING(randperm)
5b77cf82393c [project @ 2000-01-14 02:54:53 by jwe]
jwe
parents: 3371
diff changeset
241
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
242 @DOCSTRING(diag)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
243
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
244 The functions @code{linspace} and @code{logspace} make it very easy to
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
245 create vectors with evenly or logarithmically spaced elements.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
246 @xref{Ranges}.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
247
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
248 @DOCSTRING(linspace)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
249
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
250 @DOCSTRING(logspace)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
251
4167
aae05d51353c [project @ 2002-11-12 02:52:50 by jwe]
jwe
parents: 3920
diff changeset
252 @node Famous Matrices
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
253 @section Famous Matrices
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
254
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
255 The following functions return famous matrix forms.
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
256
6502
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
257 @DOCSTRING(hadamard)
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
258
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
259 @DOCSTRING(hankel)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
260
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
261 @DOCSTRING(hilb)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
262
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
263 @DOCSTRING(invhilb)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
264
6502
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
265 @DOCSTRING(magic)
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
266
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
267 @DOCSTRING(pascal)
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
268
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
269 @DOCSTRING(rosser)
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
270
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
271 @DOCSTRING(sylvester_matrix)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
272
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
273 @DOCSTRING(toeplitz)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
274
3369
f37ca3017116 [project @ 1999-11-21 16:26:02 by jwe]
jwe
parents: 3294
diff changeset
275 @DOCSTRING(vander)
6502
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
276
6ab0a8767780 [project @ 2007-04-06 03:32:06 by jwe]
jwe
parents: 6501
diff changeset
277 @DOCSTRING(wilkinson)