annotate scripts/linear-algebra/isdiag.m @ 18921:d0d0858cfab1

doc: Match docstring variable names to function variable names for linear-algebra m-files. * isbanded.m, isdefinite.m, isdiag.m, ishermitian.m, issymmetric.m, istril.m, istriu.m: Use 'A' for input matrix in linear algebra routines. Change docstrings from 'x' to 'A'.
author Rik <rik@octave.org>
date Mon, 14 Jul 2014 08:54:45 -0700
parents 9addb5ad9426
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18900
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
1 ## Copyright (C) 2014 Massimiliano Fasi
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
2 ##
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
3 ## This file is part of Octave.
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
4 ##
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
8 ## your option) any later version.
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
9 ##
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
13 ## General Public License for more details.
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
14 ##
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
18
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
19 ## -*- texinfo -*-
18921
d0d0858cfab1 doc: Match docstring variable names to function variable names for linear-algebra m-files.
Rik <rik@octave.org>
parents: 18904
diff changeset
20 ## @deftypefn {Function File} {} isdiag (@var{A})
d0d0858cfab1 doc: Match docstring variable names to function variable names for linear-algebra m-files.
Rik <rik@octave.org>
parents: 18904
diff changeset
21 ## Return true if @var{A} is a diagonal matrix.
18904
9addb5ad9426 bandwidth.m: Add new function.
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents: 18900
diff changeset
22 ## @seealso{isbanded, istril, istriu, diag, bandwidth}
18900
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
23 ## @end deftypefn
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
24
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
25 ## Author: Massimiliano Fasi
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
26
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
27 function retval = isdiag (A)
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
28
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
29 if (nargin != 1)
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
30 print_usage ();
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
31 endif
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
32
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
33 retval = (isnumeric (A) || islogical (A)) && ndims (A) == 2;
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
34 if (retval)
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
35 [i, j] = find (A);
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
36 retval = all (i == j);
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
37 endif
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
38
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
39 endfunction
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
40
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
41
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
42 %!assert (! isdiag ("string"))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
43 %!assert (isdiag ([]))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
44
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
45 %!assert (isdiag (1))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
46 %!assert (! isdiag ([1, 1]))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
47 %!assert (! isdiag ([1; 1]))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
48 %!assert (isdiag (eye (10)))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
49 %!assert (issymmetric ([i, 0; 0, 1 + i]))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
50 %!assert (isdiag (speye (1000000)))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
51 %!assert (isdiag (logical (eye (10))))
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
52
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
53 %% Test input validation
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
54 %!error isdiag ()
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
55 %!error isdiag (1,2)
49961d67e4b9 Add new matrix functions (isdiag, isbanded, istril, istriu) (bug #42688).
Massimiliano Fasi <massimiliano.fasi@gmail.com>
parents:
diff changeset
56