changeset 7415:2da391ef7f55

[project @ 2008-01-24 07:40:58 by jwe]
author jwe
date Thu, 24 Jan 2008 07:40:58 +0000
parents 905bceea061b
children a7a987b229b7
files scripts/ChangeLog scripts/linear-algebra/trace.m
diffstat 2 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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  <alois.schloegl@tugraz.at>
+
+	* linear-algebra/trace.m: Require 2-d args.  Handle vectors properly.
+
 2008-01-22  Thomas Weber  <thomas.weber.mail@gmail.com>
 
 	* linear-algebra/cond.m, 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);