changeset 9441:d672dbb87d5a octave-forge

control-devel: work on iddata class (2)
author paramaniac
date Wed, 15 Feb 2012 19:02:46 +0000
parents 64319df04e33
children 7490fcfe417e
files extra/control-devel/inst/@iddata/iddata.m extra/control-devel/inst/@iddata/size.m
diffstat 2 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/extra/control-devel/inst/@iddata/iddata.m	Wed Feb 15 17:57:34 2012 +0000
+++ b/extra/control-devel/inst/@iddata/iddata.m	Wed Feb 15 19:02:46 2012 +0000
@@ -20,10 +20,12 @@
 
   outname = repmat ({""}, p, 1);
   inname = repmat ({""}, m, 1);
+  exname = repmat ({""}, e, 1);
 
-  dat = struct ("y", y, "outname", {outname}, "outunit", {outname},
-                "u", u, "inname", {inname}, "inunit", {inname},
+  dat = struct ("y", {y}, "outname", {outname}, "outunit", {outname},
+                "u", {u}, "inname", {inname}, "inunit", {inname},
                 "tsam", tsam, "timeunit", {""},
+                "exname", {exname},
                 "name", "", "notes", {{}}, "userdata", []);
 
   dat = class (dat, "iddata");
--- a/extra/control-devel/inst/@iddata/size.m	Wed Feb 15 17:57:34 2012 +0000
+++ b/extra/control-devel/inst/@iddata/size.m	Wed Feb 15 19:02:46 2012 +0000
@@ -54,10 +54,19 @@
     print_usage ();
   endif
 
+  n = cellfun (@rows, dat.y).';
   p = numel (dat.outname);
   m = numel (dat.inname);
-  n = rows (dat.y);
-
+  e = numel (dat.y);
+  
+  if (nargout > 1)
+    ret = n;
+    varargout = {p; m; e};
+  else
+    ret = [sum(n), p, m, e];
+  endif
+  
+%{
   switch (dim)
     case 0
       switch (nargout)
@@ -94,5 +103,6 @@
     otherwise
       print_usage ();
   endswitch
+%}
 
 endfunction