gusucode.com > bigdata 工具箱 matlab源码程序 > bigdata/+matlab/+bigdata/+internal/+util/printSummary.m
function printSummary( summaryInfo ) % Print out some previously collected variable summary info % Copyright 2016 The MathWorks, Inc. import matlab.bigdata.internal.util.formatBigSize isLoose = strcmp(matlab.internal.display.formatSpacing,'loose'); if isLoose sep = sprintf('\n'); else sep = ''; end fprintf('%sVariables:\n%s', sep, sep); min_label = getString(message('MATLAB:table:uistrings:SummaryMin')); max_label = getString(message('MATLAB:table:uistrings:SummaryMax')); for idx = 1:numel(summaryInfo) thisInfo = summaryInfo{idx}; szStr = formatBigSize(thisInfo.Size); fprintf(' %s: %s %s\n', .... matlab.bigdata.internal.util.emphasizeText(thisInfo.Name), ... szStr, thisInfo.Class); if prod(thisInfo.Size) ~= 0 labelsStr = {}; valuesStr = {}; if isfield(thisInfo, 'NumMissing') % numeric-ish missingLabel = [thisInfo.MissingStr, 's']; labelsStr = { min_label, max_label }; valuesStr = { iFormat(thisInfo.MinVal), iFormat(thisInfo.MaxVal) }; if thisInfo.NumMissing > 0 labelsStr{end+1} = missingLabel; valuesStr{end+1} = formatBigSize(thisInfo.NumMissing); end elseif isfield(thisInfo, 'true') labelsStr = {'true', 'false'}; valuesStr = {formatBigSize(thisInfo.true), ... formatBigSize(thisInfo.false)}; elseif isfield(thisInfo, 'CategoricalInfo') labelsStr = thisInfo.CategoricalInfo{1}; valuesStr = arrayfun(@formatBigSize, thisInfo.CategoricalInfo{2}, 'UniformOutput', false); end if ~isempty(labelsStr) maxLabelLen = max(cellfun(@length, labelsStr)); maxValueLen = max(cellfun(@length, valuesStr)); formatStr = sprintf(' %%-%ds %%%ds\\n', maxLabelLen, maxValueLen); fprintf(' Values:\n%s', sep); for lidx = 1:numel(labelsStr) fprintf(formatStr, labelsStr{lidx}, valuesStr{lidx}); end end end fprintf('%s', sep); end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function t = iFormat(v) if isnumeric(v) t = num2str(v); elseif isdatetime(v) || isduration(v) t = char(v); elseif islogical(v) if v t = 'true'; else t = 'false'; end end end