Changeset 700


Ignore:
Timestamp:
06/02/09 11:09:38 (15 years ago)
Author:
Mathieu Morlighem
Message:

call recursively struct_display in md.results

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/classes/public/displayresults.m

    r1 r700  
    99%      displayresults(md)
    1010
    11 disp(sprintf('   Results:'));
    12 disp(sprintf('      ''%s''','diagnostic'));
    13 if isempty(md.vx), disp(sprintf('         vx: N/A')); else disp(sprintf('         vx [m/a]: (%i)',length(md.vx))); end
    14 if isempty(md.vy), disp(sprintf('         vy: N/A')); else disp(sprintf('         vy [m/a]: (%i)',length(md.vy))); end
    15 if isempty(md.vz), disp(sprintf('         vz: N/A')); else disp(sprintf('         vz [m/a]: (%i)',length(md.vz))); end
    16 if isempty(md.vel), disp(sprintf('         vel: N/A')); else disp(sprintf('         vel [m/a]: (%i)',length(md.vel))); end
    17 if isempty(md.pressure), disp(sprintf('         pressure: N/A')); else disp(sprintf('         pressure [Pa]: (%i)',length(md.pressure))); end
    18 if isempty(md.viscousheating), disp(sprintf('         viscousheating: N/A')); else disp(sprintf('         viscousheating [Pa]: (%i)',length(md.viscousheating))); end
    19 if ~isstruct(md.stress), disp(sprintf('         stress: N/A'));
     11fprintf('   Results:\n');
     12
     13%call struct_display recursively on md.results
     14struct_display(md.results,'      ');
     15
     16%display output parameters
     17fprintf('\n      output parameters:\n');
     18if ~isstruct(md.stress), fprintf('         stress: N/A\n');
    2019else
    21         disp(sprintf('         stress [Pa]:'))
     20        fprintf('         stress [Pa]:');
    2221        struct_display(md.stress,'         ');
    2322end
    24 if ~isstruct(md.deviatoricstress), disp(sprintf('         deviatoricstress: N/A'));
     23if ~isstruct(md.deviatoricstress), fprintf('         deviatoricstress: N/A\n');
    2524else
    26         disp(sprintf('         deviatoricstress [Pa]:'))
     25        fprintf('         deviatoricstress [Pa]:');
    2726        struct_display(md.deviatoricstress,'         ');
    2827end
    29 if ~isstruct(md.strainrate), disp(sprintf('         strainrate: N/A'));
     28if ~isstruct(md.strainrate), fprintf('         strainrate: N/A\n');
    3029else
    31         disp(sprintf('         strainrate [1/a]:'))
    32         struct_display(md.strainrate,'         ');
     30           fprintf('         strainrate [1/a]:');
     31                  struct_display(md.strainrate,'         ');
    3332end
    34 
    35 disp(sprintf('      ''%s''','transient'));
    36 if ~isstruct(md.transient_results), disp(sprintf('         transient_results: N/A'));
    37 else
    38         struct_display(md.transient_results,'         ');
    39 end
    40 
    41 disp(sprintf('      ''%s''','control method'));
    42 if isempty(md.cont_vx), disp(sprintf('         cont_vx: N/A')); else disp(sprintf('         cont_vx [m/a]: (%i)',length(md.cont_vx))); end
    43 if isempty(md.cont_vy), disp(sprintf('         cont_vy: N/A')); else disp(sprintf('         cont_vy [m/a]: (%i)',length(md.cont_vy))); end
    44 if isempty(md.cont_vz), disp(sprintf('         cont_vz: N/A')); else disp(sprintf('         cont_vz [m/a]: (%i)',length(md.cont_vz))); end
    45 if isempty(md.cont_vel), disp(sprintf('         cont_vel: N/A')); else disp(sprintf('         cont_vel [m/a]: (%i)',length(md.cont_vel))); end
    46 if isempty(md.cont_parameters), disp(sprintf('         cont_parameters: N/A')); else disp(sprintf('         cont_parameters: (%i)',length(md.cont_parameters))); end
    47 if isempty(md.cont_J), disp(sprintf('         cont_J: N/A')); else disp(sprintf('         cont_J: (%i)',length(md.cont_J))); end
    48 
    49        
    50 disp(sprintf('      ''%s''','thermal'));
    51 if isempty(md.temperature), disp(sprintf('         temperature: N/A')); else disp(sprintf('         temperature [K]: (%i)',length(md.temperature))); end
    52 if ~isstruct(md.thermaltransient_results), disp(sprintf('         thermaltransient_results: N/A'));
    53 else
    54         struct_display(md.thermaltransient_results,'         ');
    55 end
    56 
    57 disp(sprintf('      ''%s''','mesh2grid'));
    58 if isempty(md.mesh2grid_results) | isnan(md.mesh2grid_results), disp(sprintf('         mesh2grid_results: N/A')); else disp(sprintf('         mesh2grid_results: (%i)',length(md.mesh2grid_results))); end
    59 
    6033end
    6134
    6235function struct_display(structure,offset)
    63 structure_fields=fields(structure);
    64 for i=1:length(structure_fields),
    65         disp(sprintf('%s',[offset '   ' structure_fields{i} ': (' num2str(size( eval([' structure.' structure_fields{i}]),1))  ')' ]));
     36        structure_fields=fields(structure);
     37        for i=1:length(structure_fields),
     38                %recursive call if necessary
     39                field=eval(['structure.' structure_fields{i}]);
     40                if isstruct(field),
     41                        fprintf('\n%s\n',[offset structure_fields{i} ':']);
     42                        struct_display(field,[offset '   ']);
     43                else
     44                        fprintf('%s\n',[offset structure_fields{i} ': (' num2str(size(field,1))  ')' ]);
     45                end
     46        end
    6647end
    67 
    68 end
Note: See TracChangeset for help on using the changeset viewer.