annotate utilities/UTIL_showStructureSummary.m @ 38:c2204b18f4a2 tip

End nov big change
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 28 Nov 2011 13:34:28 +0000
parents f233164f4c86
children
rev   line source
rmeddis@0 1 function UTIL_showStructureSummary(structure, name, maxNoArrayValues)
rmeddis@0 2 % showStructureSummary prints out the values of a single structure
rmeddis@0 3 % The header is the structure name and each row is a field
rmeddis@0 4 % e.g. showStructureSummary(params,'params')
rmeddis@0 5 % This not the same as 'UTIL_showstruct'
rmeddis@0 6
rmeddis@0 7
rmeddis@0 8 if nargin<3
rmeddis@0 9 maxNoArrayValues=20;
rmeddis@0 10 end
rmeddis@0 11
rmeddis@0 12 fprintf('\n%s:', name)
rmeddis@0 13
rmeddis@0 14 fields=fieldnames(eval('structure'));
rmeddis@0 15 % for each field in the structure
rmeddis@0 16 for i=1:length(fields)
rmeddis@0 17 y=eval([ 'structure.' fields{i}]);
rmeddis@0 18 if isstr(y),
rmeddis@0 19 % strings
rmeddis@0 20 fprintf('\n%s=\t''%s''', fields{i},y)
rmeddis@0 21 elseif isnumeric(y)
rmeddis@0 22 % arrays
rmeddis@0 23 if length(y)>1
rmeddis@0 24 % vectors
rmeddis@0 25 [r c]=size(y);
rmeddis@0 26 if r>c, y=y'; end
rmeddis@0 27
rmeddis@0 28 [r c]=size(y);
rmeddis@0 29 if r>1
rmeddis@0 30 % fprintf('\n%s.%s=\t%g x %g matrix',name, fields{i}, r, c)
rmeddis@0 31 fprintf('\n%s=\t%g x %g matrix',fields{i}, r, c)
rmeddis@0 32
rmeddis@0 33 elseif c<maxNoArrayValues
rmeddis@0 34 % fprintf('\n%s=\t[%s]', fields{i},num2str(y))
rmeddis@0 35 fprintf('\n%s=', fields{i})
rmeddis@0 36 fprintf('\t%g',y)
rmeddis@0 37
rmeddis@0 38 else
rmeddis@0 39 fprintf('\n%s=\t %g... [%g element array]', fields{i}, y(1),c)
rmeddis@0 40 end
rmeddis@0 41 else
rmeddis@0 42 % single valued arrays
rmeddis@0 43 % fprintf('\n%s.%s=\t%s;', name, fields{i},num2str(y))
rmeddis@0 44 fprintf('\n%s=\t%s', fields{i},num2str(y))
rmeddis@0 45 end
rmeddis@0 46 elseif iscell(y)
rmeddis@0 47 fprintf('\n%s=\t cell array', fields{i})
rmeddis@0 48
rmeddis@0 49 elseif isstruct(y)
rmeddis@0 50 fprintf('\n%s=\t structure', fields{i})
rmeddis@0 51 end,
rmeddis@0 52
rmeddis@0 53 end,
rmeddis@0 54 fprintf('\n')
rmeddis@0 55