rmeddis@0
|
1 function UTIL_showStruct(structure, name, valuesOnly, terminator)
|
rmeddis@0
|
2 % showStruct prints out the values in a single structure
|
rmeddis@0
|
3 % using the format <name> '.' <fieled> ' = ' <value><terminator>
|
rmeddis@0
|
4 % e.g.
|
rmeddis@0
|
5 % showStruct(params,'params') % standard usage
|
rmeddis@0
|
6 %showStruct(params,'params', 0, ';') % adds final comma
|
rmeddis@0
|
7 %showStruct(params,'params', 1) % omits structure and field names
|
rmeddis@0
|
8
|
rmeddis@0
|
9 if nargin<3, valuesOnly=0; end
|
rmeddis@0
|
10 if nargin<4, terminator=[]; end
|
rmeddis@0
|
11
|
rmeddis@0
|
12 fields=fieldnames(eval('structure'));
|
rmeddis@0
|
13 for i=1:length(fields)
|
rmeddis@0
|
14 % y is the contents of this field
|
rmeddis@0
|
15 y=eval([ 'structure.' fields{i}]);
|
rmeddis@0
|
16 if ischar(y),
|
rmeddis@0
|
17 % strings
|
rmeddis@0
|
18 if valuesOnly
|
rmeddis@0
|
19 fprintf('\n%s', y)
|
rmeddis@0
|
20 else
|
rmeddis@0
|
21 fprintf('\n%s.%s=\t''%s%s''', name, fields{i},y,terminator)
|
rmeddis@0
|
22 end
|
rmeddis@0
|
23 elseif isnumeric(y)
|
rmeddis@0
|
24 % arrays
|
rmeddis@0
|
25 if length(y)>1
|
rmeddis@0
|
26 % matrices and vectors
|
rmeddis@0
|
27 [r c]=size(y);
|
rmeddis@0
|
28 if r>c, y=y'; end % make row vector from column vector
|
rmeddis@0
|
29 [r c]=size(y);
|
rmeddis@0
|
30
|
rmeddis@0
|
31 if r>10
|
rmeddis@0
|
32 % large matrix
|
rmeddis@0
|
33 fprintf('\n%s.%s=\t%g x %g matrix',name, fields{i}, r, c)
|
rmeddis@0
|
34
|
rmeddis@0
|
35 elseif r>1
|
rmeddis@0
|
36 % small matrix
|
rmeddis@0
|
37 for row=1:r
|
rmeddis@0
|
38 fprintf('\n%s.%s(%1.0f)=\t%s;', name, fields{i},row, num2str(y(row,:)))
|
rmeddis@0
|
39 end
|
rmeddis@0
|
40
|
rmeddis@0
|
41 elseif c>20
|
rmeddis@0
|
42 % long row vector
|
rmeddis@0
|
43 fprintf('\n%s.%s=\t %g... [%g element array]%s',name, fields{i}, y(1),c, terminator)
|
rmeddis@0
|
44
|
rmeddis@0
|
45 else
|
rmeddis@0
|
46 fprintf('\n%s.%s=\t[%s]%s', name, fields{i},num2str(y),terminator)
|
rmeddis@0
|
47 end
|
rmeddis@0
|
48 else
|
rmeddis@0
|
49 % single valued arrays
|
rmeddis@0
|
50 if valuesOnly
|
rmeddis@0
|
51 fprintf('\n%s%s', num2str(y), terminator)
|
rmeddis@0
|
52 else
|
rmeddis@0
|
53 fprintf('\n%s.%s=\t%s%s', name, fields{i},num2str(y), terminator)
|
rmeddis@0
|
54 end
|
rmeddis@0
|
55
|
rmeddis@0
|
56 end % length (y)
|
rmeddis@0
|
57 elseif iscell(y)
|
rmeddis@0
|
58 fprintf('\n%s.%s=\t cell array', name, fields{i})
|
rmeddis@0
|
59
|
rmeddis@0
|
60 elseif isstruct(y)
|
rmeddis@0
|
61 fprintf('\n%s.%s=\t structure', name, fields{i})
|
rmeddis@0
|
62 end % isstr/ numeric
|
rmeddis@0
|
63
|
rmeddis@0
|
64 end % field
|
rmeddis@0
|
65 fprintf('\n') |