Mercurial > repos > public > sbplib
comparison toString.m @ 466:e1a59aafe99c
Add structArray to toString()
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 01 Aug 2017 12:32:25 +0200 |
parents | 2ccfe80e9b58 |
children |
comparison
equal
deleted
inserted
replaced
465:a5cebdaad10b | 466:e1a59aafe99c |
---|---|
49 end | 49 end |
50 str = [str sprintf('%s}', value2string(c{end,end}))]; | 50 str = [str sprintf('%s}', value2string(c{end,end}))]; |
51 end | 51 end |
52 | 52 |
53 function str = struct2string(s) | 53 function str = struct2string(s) |
54 if isscalar(s) | |
55 str = structScalar2string(s); | |
56 else | |
57 str = structArray2string(s); | |
58 end | |
59 end | |
60 | |
61 function str = structScalar2string(s) | |
54 fn = fieldnames(s); | 62 fn = fieldnames(s); |
55 | 63 |
56 if length(fn) == 0 | 64 if length(fn) == 0 |
57 str = '{}'; | 65 str = '{}'; |
58 return | 66 return |
66 end | 74 end |
67 value = s.(fn{end}); | 75 value = s.(fn{end}); |
68 str = [str sprintf('%s: %s}',fn{end}, value2string(value))]; | 76 str = [str sprintf('%s: %s}',fn{end}, value2string(value))]; |
69 end | 77 end |
70 | 78 |
79 function str = structArray2string(s) | |
80 fn = fieldnames(s); | |
81 | |
82 if length(fn) == 0 | |
83 str = '{}'; | |
84 return | |
85 end | |
86 | |
87 stringArray = cell(length(s)+1, length(fn)+1); | |
88 | |
89 stringArray(1,2:end) = fn; | |
90 | |
91 for i = 1:length(s) | |
92 stringArray{i+1,1} = i; | |
93 for j = 1:length(fn) | |
94 valueStr = value2string(s(i).(fn{j})); | |
95 stringArray{i+1,j+1} = valueStr; | |
96 end | |
97 end | |
98 | |
99 tt = TextTable(stringArray); | |
100 tt.fmtArray(2:end, 1) = {'%d'}; | |
101 tt.vertDiv = [1]; | |
102 tt.horzDiv = [1]; | |
103 str = tt.toString(); | |
104 end | |
105 | |
106 | |
107 |