Mercurial > octave
annotate doc/interpreter/matrix.txi @ 30564:796f54d4ddbf stable
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2021.
In all .txi and .texi files except gpl.txi and gpl.texi in the
doc/liboctave and doc/interpreter directories, change the copyright
to "Octave Project Developers", the same as used for other source
files. Update copyright notices for 2022 (not done since 2019). For
gpl.txi and gpl.texi, change the copyright notice to be "Free Software
Foundation, Inc." and leave the date at 2007 only because this file
only contains the text of the GPL, not anything created by the Octave
Project Developers.
Add Paul Thomas to contributors.in.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 Dec 2021 18:22:40 -0500 |
parents | 7fa1d6f670f5 |
children | 397d29f7135c |
rev | line source |
---|---|
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
28111
diff
changeset
|
1 @c Copyright (C) 1996-2022 The Octave Project Developers |
7018 | 2 @c |
3 @c This file is part of Octave. | |
4 @c | |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23887
diff
changeset
|
5 @c Octave is free software: you can redistribute it and/or modify it |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
6 @c under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23887
diff
changeset
|
7 @c the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
8 @c (at your option) any later version. |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
9 @c |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
10 @c Octave is distributed in the hope that it will be useful, but |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
11 @c WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
12 @c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
13 @c GNU General Public License for more details. |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
14 @c |
7018 | 15 @c You should have received a copy of the GNU General Public License |
16 @c along with Octave; see the file COPYING. If not, see | |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23887
diff
changeset
|
17 @c <https://www.gnu.org/licenses/>. |
3294 | 18 |
4167 | 19 @node Matrix Manipulation |
3294 | 20 @chapter Matrix Manipulation |
21 | |
22 There are a number of functions available for checking to see if the | |
23 elements of a matrix meet some condition, and for rearranging the | |
24 elements of a matrix. For example, Octave can easily tell you if all | |
25 the elements of a matrix are finite, or are less than some specified | |
26 value. Octave can also rotate the elements, extract the upper- or | |
27 lower-triangular parts, or sort the columns of a matrix. | |
28 | |
29 @menu | |
17152
f2a8592b8fbd
doc: Shorten some long subsection names in Manual.
Rik <rik@octave.org>
parents:
17097
diff
changeset
|
30 * Finding Elements and Checking Conditions:: |
f2a8592b8fbd
doc: Shorten some long subsection names in Manual.
Rik <rik@octave.org>
parents:
17097
diff
changeset
|
31 * Rearranging Matrices:: |
f2a8592b8fbd
doc: Shorten some long subsection names in Manual.
Rik <rik@octave.org>
parents:
17097
diff
changeset
|
32 * Special Utility Matrices:: |
f2a8592b8fbd
doc: Shorten some long subsection names in Manual.
Rik <rik@octave.org>
parents:
17097
diff
changeset
|
33 * Famous Matrices:: |
3294 | 34 @end menu |
35 | |
4167 | 36 @node Finding Elements and Checking Conditions |
3294 | 37 @section Finding Elements and Checking Conditions |
38 | |
39 The functions @code{any} and @code{all} are useful for determining | |
40 whether any or all of the elements of a matrix satisfy some condition. | |
41 The @code{find} function is also useful in determining which elements of | |
42 a matrix meet a specified condition. | |
43 | |
3369 | 44 @DOCSTRING(any) |
3294 | 45 |
3369 | 46 @DOCSTRING(all) |
3294 | 47 |
48 Since the comparison operators (@pxref{Comparison Ops}) return matrices | |
49 of ones and zeros, it is easy to test a matrix for many things, not just | |
10846
a4f482e66b65
Grammarcheck more of the documentation.
Rik <octave@nomad.inbox5.com>
parents:
10828
diff
changeset
|
50 whether the elements are nonzero. For example, |
3294 | 51 |
52 @example | |
53 @group | |
54 all (all (rand (5) < 0.9)) | |
55 @result{} 0 | |
56 @end group | |
57 @end example | |
58 | |
59 @noindent | |
60 tests a random 5 by 5 matrix to see if all of its elements are less | |
61 than 0.9. | |
62 | |
63 Note that in conditional contexts (like the test clause of @code{if} and | |
64 @code{while} statements) Octave treats the test as if you had typed | |
65 @code{all (all (condition))}. | |
66 | |
3428 | 67 @DOCSTRING(xor) |
68 | |
3369 | 69 @DOCSTRING(diff) |
3294 | 70 |
3369 | 71 @DOCSTRING(isinf) |
3294 | 72 |
3369 | 73 @DOCSTRING(isnan) |
3294 | 74 |
11431
0d9640d755b1
Improve docstrings for all isXXX functions.
Rik <octave@nomad.inbox5.com>
parents:
10892
diff
changeset
|
75 @DOCSTRING(isfinite) |
3294 | 76 |
12639
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
77 @DOCSTRING(common_size) |
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
78 |
3369 | 79 @DOCSTRING(find) |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17152
diff
changeset
|
80 |
9367 | 81 @DOCSTRING(lookup) |
3428 | 82 |
13017
aaf6fbb2512f
doc: Add cross references to "status of variables" in sections for predicates
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
12639
diff
changeset
|
83 If you wish to check if a variable exists at all, instead of properties |
13019
1653d3a86fca
doc: Fix warnings and errors in Texinfo required for building docs on stable branch.
Rik <octave@nomad.inbox5.com>
parents:
13017
diff
changeset
|
84 its elements may have, consult @ref{Status of Variables}. |
13017
aaf6fbb2512f
doc: Add cross references to "status of variables" in sections for predicates
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
12639
diff
changeset
|
85 |
4167 | 86 @node Rearranging Matrices |
3294 | 87 @section Rearranging Matrices |
88 | |
3369 | 89 @DOCSTRING(fliplr) |
3294 | 90 |
3369 | 91 @DOCSTRING(flipud) |
3294 | 92 |
19126
995df67fc912
Flip arrays - ND support for fliplr and flipud, and replace flipdim with flip.
Carnë Draug <carandraug+dev@gmail.com>
parents:
17744
diff
changeset
|
93 @DOCSTRING(flip) |
4869 | 94 |
3369 | 95 @DOCSTRING(rot90) |
3294 | 96 |
4869 | 97 @DOCSTRING(rotdim) |
98 | |
4845 | 99 @DOCSTRING(cat) |
100 | |
101 @DOCSTRING(horzcat) | |
102 | |
103 @DOCSTRING(vertcat) | |
104 | |
105 @DOCSTRING(permute) | |
106 | |
107 @DOCSTRING(ipermute) | |
108 | |
3369 | 109 @DOCSTRING(reshape) |
3294 | 110 |
8432
c9cb8f0b8b4f
add reference to resize function in the manual
Francesco Potortì <pot@gnu.org>
parents:
8286
diff
changeset
|
111 @DOCSTRING(resize) |
c9cb8f0b8b4f
add reference to resize function in the manual
Francesco Potortì <pot@gnu.org>
parents:
8286
diff
changeset
|
112 |
4894 | 113 @DOCSTRING(circshift) |
114 | |
12639
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
115 @DOCSTRING(shift) |
4894 | 116 |
12639
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
117 @DOCSTRING(shiftdim) |
3294 | 118 |
3369 | 119 @DOCSTRING(sort) |
3294 | 120 |
6550 | 121 @DOCSTRING(sortrows) |
122 | |
8817
03b7f618ab3d
include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents:
8519
diff
changeset
|
123 @DOCSTRING(issorted) |
03b7f618ab3d
include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents:
8519
diff
changeset
|
124 |
12523
33f7d8f95f5b
Add nth_element function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
12498
diff
changeset
|
125 @DOCSTRING(nth_element) |
33f7d8f95f5b
Add nth_element function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
12498
diff
changeset
|
126 |
3369 | 127 @DOCSTRING(tril) |
3294 | 128 |
25018
ed3d7a33551b
doc: Redo documentation for tril and triu.
Rik <rik@octave.org>
parents:
25003
diff
changeset
|
129 @DOCSTRING(triu) |
ed3d7a33551b
doc: Redo documentation for tril and triu.
Rik <rik@octave.org>
parents:
25003
diff
changeset
|
130 |
3369 | 131 @DOCSTRING(vec) |
3294 | 132 |
3369 | 133 @DOCSTRING(vech) |
3294 | 134 |
3428 | 135 @DOCSTRING(prepad) |
136 | |
11539
6bac61388876
Add undocumented postpad function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
137 @DOCSTRING(postpad) |
6bac61388876
Add undocumented postpad function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
138 |
8851
d6de39523f03
improve the diag & perm matrices text
Jaroslav Hajek <highegg@gmail.com>
parents:
8839
diff
changeset
|
139 @DOCSTRING(diag) |
d6de39523f03
improve the diag & perm matrices text
Jaroslav Hajek <highegg@gmail.com>
parents:
8839
diff
changeset
|
140 |
6550 | 141 @DOCSTRING(blkdiag) |
142 | |
4167 | 143 @node Special Utility Matrices |
3294 | 144 @section Special Utility Matrices |
145 | |
3369 | 146 @DOCSTRING(eye) |
3294 | 147 |
3369 | 148 @DOCSTRING(ones) |
3294 | 149 |
3369 | 150 @DOCSTRING(zeros) |
3294 | 151 |
3920 | 152 @DOCSTRING(repmat) |
153 | |
10801
a40e32927b3a
Improve documentation for new repelems function.
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
154 @DOCSTRING(repelems) |
a40e32927b3a
Improve documentation for new repelems function.
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
155 |
23887
c3043aaad700
new function repelem (bug #45497)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
23220
diff
changeset
|
156 @DOCSTRING(repelem) |
c3043aaad700
new function repelem (bug #45497)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
23220
diff
changeset
|
157 |
12639
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
158 The functions @code{linspace} and @code{logspace} make it very easy to |
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
159 create vectors with evenly or logarithmically spaced elements. |
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
160 @xref{Ranges}. |
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
161 |
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
162 @DOCSTRING(linspace) |
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
163 |
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
164 @DOCSTRING(logspace) |
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
12523
diff
changeset
|
165 |
3369 | 166 @DOCSTRING(rand) |
3294 | 167 |
10892
20ce631f0f12
Add new randi function for random integers.
Rik <octave@nomad.inbox5.com>
parents:
10846
diff
changeset
|
168 @DOCSTRING(randi) |
20ce631f0f12
Add new randi function for random integers.
Rik <octave@nomad.inbox5.com>
parents:
10846
diff
changeset
|
169 |
3369 | 170 @DOCSTRING(randn) |
3294 | 171 |
5730 | 172 @DOCSTRING(rande) |
173 | |
174 @DOCSTRING(randp) | |
175 | |
176 @DOCSTRING(randg) | |
177 | |
28111 | 178 @DOCSTRING(rng) |
179 | |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
180 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
|
181 possible to mix the two. Initializing any generator with |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17152
diff
changeset
|
182 @qcode{"state"} or @qcode{"seed"} causes the others to switch to the |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
183 same style for future calls. |
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
184 |
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
185 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
|
186 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
|
187 example, |
3294 | 188 |
189 @example | |
190 @group | |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
191 rand ("state", [11, 22, 33]); |
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
192 randn ("state", [44, 55, 66]); |
3294 | 193 u = rand (100, 1); |
194 n = randn (100, 1); | |
195 @end group | |
196 @end example | |
197 | |
198 @noindent | |
199 and | |
200 | |
201 @example | |
202 @group | |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
203 rand ("state", [11, 22, 33]); |
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
204 randn ("state", [44, 55, 66]); |
3294 | 205 u = zeros (100, 1); |
206 n = zeros (100, 1); | |
207 for i = 1:100 | |
208 u(i) = rand (); | |
209 n(i) = randn (); | |
210 end | |
211 @end group | |
212 @end example | |
213 | |
214 @noindent | |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
215 produce equivalent results. When the generators are initialized in |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17152
diff
changeset
|
216 the old style with @qcode{"seed"} only @code{rand} and @code{randn} are |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
217 independent, because the old @code{rande}, @code{randg} and |
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
218 @code{randp} generators make calls to @code{rand} and @code{randn}. |
3294 | 219 |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
220 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
|
221 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
|
222 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
|
223 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
|
224 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
|
225 or seed to a specific value. |
3294 | 226 |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
227 If invoked without arguments, @code{rand} and @code{randn} return a |
3294 | 228 single element of a random sequence. |
229 | |
8133
f38997cf9e5b
matrix.txi: update docs for random number generators
Brian Gough
parents:
7018
diff
changeset
|
230 The original @code{rand} and @code{randn} functions use Fortran code from |
10828
322f43e0e170
Grammarcheck .txi documentation files.
Rik <octave@nomad.inbox5.com>
parents:
10801
diff
changeset
|
231 @sc{ranlib}, a library of Fortran routines for random number generation, |
25003
2365c2661b3c
doc: Spellcheck documentation ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
232 compiled by Barry W. Brown and @nospell{James Lovato} of the Department of |
3294 | 233 Biomathematics at The University of Texas, M.D. Anderson Cancer Center, |
234 Houston, TX 77030. | |
235 | |
3428 | 236 @DOCSTRING(randperm) |
237 | |
4167 | 238 @node Famous Matrices |
3294 | 239 @section Famous Matrices |
240 | |
241 The following functions return famous matrix forms. | |
242 | |
16634
2510fffc05e1
gallery: new function
Carnë Draug <carandraug@octave.org>
parents:
14138
diff
changeset
|
243 @DOCSTRING(gallery) |
2510fffc05e1
gallery: new function
Carnë Draug <carandraug@octave.org>
parents:
14138
diff
changeset
|
244 |
6502 | 245 @DOCSTRING(hadamard) |
246 | |
3369 | 247 @DOCSTRING(hankel) |
3294 | 248 |
3369 | 249 @DOCSTRING(hilb) |
3294 | 250 |
3369 | 251 @DOCSTRING(invhilb) |
3294 | 252 |
6502 | 253 @DOCSTRING(magic) |
254 | |
255 @DOCSTRING(pascal) | |
256 | |
257 @DOCSTRING(rosser) | |
258 | |
3369 | 259 @DOCSTRING(toeplitz) |
3294 | 260 |
3369 | 261 @DOCSTRING(vander) |
6502 | 262 |
263 @DOCSTRING(wilkinson) |