rmeddis@0: function UTIL_showStruct(structure, name, valuesOnly, terminator) rmeddis@0: % showStruct prints out the values in a single structure rmeddis@0: % using the format '.' ' = ' rmeddis@0: % e.g. rmeddis@0: % showStruct(params,'params') % standard usage rmeddis@0: %showStruct(params,'params', 0, ';') % adds final comma rmeddis@0: %showStruct(params,'params', 1) % omits structure and field names rmeddis@0: rmeddis@0: if nargin<3, valuesOnly=0; end rmeddis@0: if nargin<4, terminator=[]; end rmeddis@0: rmeddis@0: fields=fieldnames(eval('structure')); rmeddis@0: for i=1:length(fields) rmeddis@0: % y is the contents of this field rmeddis@0: y=eval([ 'structure.' fields{i}]); rmeddis@0: if ischar(y), rmeddis@0: % strings rmeddis@0: if valuesOnly rmeddis@0: fprintf('\n%s', y) rmeddis@0: else rmeddis@0: fprintf('\n%s.%s=\t''%s%s''', name, fields{i},y,terminator) rmeddis@0: end rmeddis@0: elseif isnumeric(y) rmeddis@0: % arrays rmeddis@0: if length(y)>1 rmeddis@0: % matrices and vectors rmeddis@0: [r c]=size(y); rmeddis@0: if r>c, y=y'; end % make row vector from column vector rmeddis@0: [r c]=size(y); rmeddis@0: rmeddis@0: if r>10 rmeddis@0: % large matrix rmeddis@0: fprintf('\n%s.%s=\t%g x %g matrix',name, fields{i}, r, c) rmeddis@0: rmeddis@0: elseif r>1 rmeddis@0: % small matrix rmeddis@0: for row=1:r rmeddis@0: fprintf('\n%s.%s(%1.0f)=\t%s;', name, fields{i},row, num2str(y(row,:))) rmeddis@0: end rmeddis@0: rmeddis@0: elseif c>20 rmeddis@0: % long row vector rmeddis@0: fprintf('\n%s.%s=\t %g... [%g element array]%s',name, fields{i}, y(1),c, terminator) rmeddis@0: rmeddis@0: else rmeddis@0: fprintf('\n%s.%s=\t[%s]%s', name, fields{i},num2str(y),terminator) rmeddis@0: end rmeddis@0: else rmeddis@0: % single valued arrays rmeddis@0: if valuesOnly rmeddis@0: fprintf('\n%s%s', num2str(y), terminator) rmeddis@0: else rmeddis@0: fprintf('\n%s.%s=\t%s%s', name, fields{i},num2str(y), terminator) rmeddis@0: end rmeddis@0: rmeddis@0: end % length (y) rmeddis@0: elseif iscell(y) rmeddis@0: fprintf('\n%s.%s=\t cell array', name, fields{i}) rmeddis@0: rmeddis@0: elseif isstruct(y) rmeddis@0: fprintf('\n%s.%s=\t structure', name, fields{i}) rmeddis@0: end % isstr/ numeric rmeddis@0: rmeddis@0: end % field rmeddis@0: fprintf('\n')