diff toString.m @ 592:4422c4476650 feature/utux2D

Merge with feature/grids
author Martin Almquist <martin.almquist@it.uu.se>
date Mon, 11 Sep 2017 14:17:15 +0200
parents e1a59aafe99c
children
line wrap: on
line diff
--- a/toString.m	Mon Sep 11 14:12:54 2017 +0200
+++ b/toString.m	Mon Sep 11 14:17:15 2017 +0200
@@ -51,6 +51,14 @@
 end
 
 function str = struct2string(s)
+    if isscalar(s)
+        str = structScalar2string(s);
+    else
+        str = structArray2string(s);
+    end
+end
+
+function str = structScalar2string(s)
     fn = fieldnames(s);
 
     if length(fn) == 0
@@ -68,3 +76,32 @@
     str = [str sprintf('%s: %s}',fn{end}, value2string(value))];
 end
 
+function str = structArray2string(s)
+    fn = fieldnames(s);
+
+    if length(fn) == 0
+        str = '{}';
+        return
+    end
+
+    stringArray = cell(length(s)+1, length(fn)+1);
+
+    stringArray(1,2:end) = fn;
+
+    for i = 1:length(s)
+        stringArray{i+1,1} = i;
+        for j = 1:length(fn)
+            valueStr = value2string(s(i).(fn{j}));
+            stringArray{i+1,j+1} = valueStr;
+        end
+    end
+
+    tt = TextTable(stringArray);
+    tt.fmtArray(2:end, 1) = {'%d'};
+    tt.vertDiv = [1];
+    tt.horzDiv = [1];
+    str = tt.toString();
+end
+
+
+