www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/CalculateSizeOfTallArrayExample.m
%% Calculate Size of Tall Array % Convert a datastore into a tall table, calculate its size using a % deferred calculation, and then perform the calculation and return the % result in memory. % % First, create a datastore for the |airlinesmall.csv| data set. Treat % |'NA'| values as missing data so that they are replaced with |NaN| % values. Set the text format of a few columns so that they are read as a % cell array of character vectors. Convert the datastore into a tall table. ds = datastore('airlinesmall.csv', 'TreatAsMissing', 'NA'); ds.SelectedFormats{strcmp(ds.SelectedVariableNames, 'TailNum')} = '%s'; ds.SelectedFormats{strcmp(ds.SelectedVariableNames, 'CancellationCode')} = '%s'; %% T = tall(ds) %% % The display of the tall table indicates that MATLAB(R) does not yet know % how many rows of data are in the table. %% % Calculate the size of the tall table. Since calculating the size of a % tall array requires a full pass through the data, MATLAB does not % immediately calculate the value. Instead, like most operations with tall % arrays, the result is an unevaluated tall array whose values and size are % currently unknown. s = size(T) %% % Use the |gather| function to perform the deferred calculation and return % the result in memory. The result returned by |size| is a trivially small % 1-by-2 vector, which fits in memory. sz = gather(s) %% % If you use |gather| on an unreduced tall array, then the result might not % fit in memory. If you are unsure whether the result returned by |gather| % can fit in memory, use |gather(head(X))| or |gather(tail(X))| to bring % only a small portion of the calculation result into memory.