# HG changeset patch # User jwe # Date 1201160458 0 # Node ID 2da391ef7f55f26abbc157977a96ccf1040f026f # Parent 905bceea061b12e42da5feef4beec09d2e6b023c [project @ 2008-01-24 07:40:58 by jwe] diff -r 905bceea061b -r 2da391ef7f55 scripts/ChangeLog --- a/scripts/ChangeLog Wed Jan 23 08:14:38 2008 +0000 +++ b/scripts/ChangeLog Thu Jan 24 07:40:58 2008 +0000 @@ -1,3 +1,7 @@ +2008-01-24 Schloegl Alois + + * linear-algebra/trace.m: Require 2-d args. Handle vectors properly. + 2008-01-22 Thomas Weber * linear-algebra/cond.m, linear-algebra/trace.m: diff -r 905bceea061b -r 2da391ef7f55 scripts/linear-algebra/trace.m --- a/scripts/linear-algebra/trace.m Wed Jan 23 08:14:38 2008 +0000 +++ b/scripts/linear-algebra/trace.m Thu Jan 24 07:40:58 2008 +0000 @@ -30,8 +30,11 @@ print_usage (); endif - [nr, nc] = size (x); - if (nr == 1 || nc == 1) + if (ndims (x) > 2) + error ("trace: only valid on 2-D objects"); + elseif (isempty (x)) + y = 0; + elseif (any (size (x) == 1)) y = x(1); else y = sum (diag (x)); @@ -40,12 +43,8 @@ endfunction %!assert(trace ([1, 2; 3, 4]) == 5); - %!assert(trace ([1, 2; 3, 4; 5, 6]) == 5); - %!assert(trace ([1, 3, 5; 2, 4, 6]) == 5); - %!error trace (); - %!error trace (1, 2);