Mercurial > octave-nkf
comparison scripts/linear-algebra/rank.m @ 4706:2c73119a576a
[project @ 2004-01-22 04:36:54 by jwe]
author | jwe |
---|---|
date | Thu, 22 Jan 2004 04:36:54 +0000 |
parents | c11d138d654a |
children | 4c8a2e4e0717 |
comparison
equal
deleted
inserted
replaced
4705:a1b165f5e934 | 4706:2c73119a576a |
---|---|
37 | 37 |
38 function retval = rank (A, tol) | 38 function retval = rank (A, tol) |
39 | 39 |
40 if (nargin == 1) | 40 if (nargin == 1) |
41 sigma = svd (A); | 41 sigma = svd (A); |
42 tolerance = max (size (A)) * sigma (1) * eps; | 42 if (isempty (sigma)) |
43 tolerance = 0; | |
44 else | |
45 tolerance = max (size (A)) * sigma (1) * eps; | |
46 endif | |
43 elseif (nargin == 2) | 47 elseif (nargin == 2) |
44 sigma = svd (A); | 48 sigma = svd (A); |
45 tolerance = tol; | 49 tolerance = tol; |
46 else | 50 else |
47 usage ("rank (A)"); | 51 usage ("rank (A)"); |
48 endif | 52 endif |
53 | |
49 retval = sum (sigma > tolerance); | 54 retval = sum (sigma > tolerance); |
50 | 55 |
51 endfunction | 56 endfunction |