Mercurial > hg > octave-nkf
annotate scripts/sparse/speye.m @ 20788:7374a3a6d594
use new string_value method to handle value extraction errors
* urlwrite.cc: Use new string_value method.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 08 Oct 2015 17:26:40 -0400 |
parents | 4197fc428c7d |
children |
rev | line source |
---|---|
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19004
diff
changeset
|
1 ## Copyright (C) 2004-2015 David Bateman and Andy Adler |
5164 | 2 ## |
7016 | 3 ## This file is part of Octave. |
5164 | 4 ## |
7016 | 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. | |
5164 | 14 ## |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
5164 | 18 |
19 ## -*- texinfo -*- | |
19004
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
20 ## @deftypefn {Function File} {@var{s} =} speye (@var{m}, @var{n}) |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
21 ## @deftypefnx {Function File} {@var{s} =} speye (@var{m}) |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
22 ## @deftypefnx {Function File} {@var{s} =} speye (@var{sz}) |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
23 ## Return a sparse identity matrix of size @var{m}x@var{n}. |
5164 | 24 ## |
19004
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
25 ## The implementation is significantly more efficient than |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
26 ## @code{sparse (eye (@var{m}))} as the full matrix is not constructed. |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
27 ## |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
28 ## Called with a single argument a square matrix of size |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
29 ## @var{m}-by-@var{m} is created. If called with a single vector argument |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
30 ## @var{sz}, this argument is taken to be the size of the matrix to create. |
53af80da6781
doc: Update documentation of sparse functions including seealso links.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
31 ## @seealso{sparse, spdiags, eye} |
5164 | 32 ## @end deftypefn |
33 | |
6498 | 34 function s = speye (m, n) |
5164 | 35 if (nargin == 1) |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
36 if (isvector (m) && length (m) == 2) |
5164 | 37 n = m(2); |
38 m = m(1); | |
39 elseif (isscalar (m)) | |
40 n = m; | |
41 else | |
42 error ("speye: invalid matrix dimension"); | |
43 endif | |
44 else | |
6498 | 45 if (! isscalar (m) || ! isscalar (n)) |
5164 | 46 error ("speye: invalid matrix dimension"); |
47 endif | |
48 endif | |
49 | |
6498 | 50 lo = min ([m, n]); |
51 s = sparse (1:lo, 1:lo, 1, m, n); | |
5164 | 52 endfunction |
53 | |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
54 |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
55 %!assert (issparse (speye (4))) |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
56 %!assert (speye (4), sparse (1:4,1:4,1)) |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
57 %!assert (speye (2,4), sparse (1:2,1:2,1,2,4)) |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
58 %!assert (speye (4,2), sparse (1:2,1:2,1,4,2)) |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
59 %!assert (speye ([4,2]), sparse (1:2,1:2,1,4,2)) |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
60 |