Mercurial > hg > octave-lyh
annotate scripts/general/isrow.m @ 12604:132c89bb44e3
maint: Refactor general/isXXX.m scripts to put input validation first.
* general/isdir.m, general/isequal.m, general/isequalwithequalnans.m,
general/isscalar.m, general/issquare.m, general/isvector.m: Refactor
code to put input validation first.
* general/iscolumn.m, general/isrow.m : Remove useless initialization
of output variable.
* general/isa.m: Add additional tests for various classes.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Wed, 13 Apr 2011 09:32:10 -0700 |
parents | bea828c03969 |
children | e98140f84ae0 |
rev | line source |
---|---|
12488
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
1 ## Copyright (C) 2011 John W. Eaton |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
2 ## |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
3 ## This file is part of Octave. |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
4 ## |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
8 ## your option) any later version. |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
9 ## |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
13 ## General Public License for more details. |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
14 ## |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
17 ## <http://www.gnu.org/licenses/>. |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
18 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
20 ## @deftypefn {Function File} {} isrow (@var{x}) |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
21 ## Return true if @var{x} is a row vector. |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
22 ## @seealso{iscolumn, isscalar, isvector, ismatrix} |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
23 ## @end deftypefn |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
24 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
25 ## Author: Rik Wehbring |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
26 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
27 function retval = isrow (x) |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
28 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
29 if (nargin != 1) |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
30 print_usage (); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
31 endif |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
32 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
33 sz = size (x); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
34 retval = (ndims (x) == 2 && (sz(1) == 1)); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
35 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
36 endfunction |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
37 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
38 %!assert(isrow ([1, 2, 3])); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
39 %!assert(isrow ([1; 2; 3]), false); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
40 %!assert(isrow (1)); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
41 %!assert(isrow ([]), false); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
42 %!assert(isrow ([1, 2; 3, 4]), false); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
43 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
44 %!test |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
45 %! warning ("off", "Octave:str-to-num"); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
46 %! assert((isrow ("t"))); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
47 %!test |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
48 %! warning ("off", "Octave:str-to-num"); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
49 %! assert((isrow ("test"))); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
50 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
51 %!assert(!(isrow (["test"; "ing"]))); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
52 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
53 %!test |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
54 %! s.a = 1; |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
55 %! assert((isrow (s))); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
56 |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
57 %% Test input validation |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
58 %!error isrow (); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
59 %!error isrow ([1, 2], 2); |
bea828c03969
Add new isrow, iscolumn functions.
Rik <octave@nomad.inbox5.com>
parents:
diff
changeset
|
60 |