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