File Exchange

image thumbnail

cell2underlying for tall arrays

Simplifies use of tall arrays with fileDatastore

8 Downloads

Updated 21 Jun 2018

View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

When you make a tall array from a fileDatastore, the resulting tall array is a tall cell array. CELL2UNDERLYING converts that tall cell array to a tall array of the underlying data. For example, if your fileDatastore returns a table for each file that it reads, then a tall array based on that fileDatastore would be a tall cell array where each cell contained a table. Using CELL2UNDERLYING would convert that to a tall table.

Cite As

MathWorks Parallel Computing Toolbox Team (2019). cell2underlying for tall arrays (https://www.mathworks.com/matlabcentral/fileexchange/61517-cell2underlying-for-tall-arrays), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (10)

Ben Tordoff

Hi Andre, try putting this in an @tall folder somewhere on your path but not under the MATLAB install. The contents of the MATLAB install is cached so new files added under there might not be recognized (and may require admin rights to modify anyway). Also, the list of methods for a class is determined when you first create an object of that class, so you need to get this in the right place and on the path *before* first using a tall array. As an example, I have a folder "matlab" in my home directory that is on my MATLAB path, and adding this function to "/home/<me>/matlab/@tall", then restarting MATLAB, seemed to work fine.

Andre

Hello,
I try to run this script, but it does not work. I get the following message:
>> which cell2underlying
C:\Program Files\MATLAB\R2016b\toolbox\stats\bigdata\@tall\cell2underlying.m % tall method
>> cell2underlying(tt)
Undefined function 'cell2underlying' for input arguments of type 'tall'.

Has someone an idea?

Hi, I just got a mac, how can the file be saved in [matlabroot '\toolbox\matlab\bigdata\@tall'] with a mac?
Thank you

Jos Martin

Will Wilson

Awesome function! Makes Tall Arrays even better!

Adam Filion

This file should be saved in the folder:
>> [matlabroot '\toolbox\matlab\bigdata\@tall']

This should be added to the description for clarification. Otherwise works great!

@Edric, thanks for that, I've dropped it in the bigdata tool box @tall path. Which now allows it to work correctly.

>>which cell2underlying
\MATLAB\R2016b\toolbox\stats\bigdata\@tall\cell2underlying.m % tall method

Edric Ellis

@Ian I suspect you have the CELL2UNDERLYING function itself on the path - you need to have the "@tall" directory on the path. "which cell2underlying" should return something like "path/to/@tall/cell2underlying.m % tall method".

>> tt = tall(readall(FDS));
>> ttt = cell2underlying(tt);
Error using tall/chunkfun
Cannot access method 'chunkfun' in class 'tall'.

Error in cell2underlying (line 44)
out = chunkfun(@(x) iFcn(localSize, x), in);

%please advise.

Updates

1.1.0.0

This update introduces a second syntax of CELL2UNDERLYING that allows you to provide an example of the underlying data. This is useful when you need to use CELL2UNDERLYING on the output of expensive tall calculations.

MATLAB Release Compatibility
Created with R2016b
Compatible with any release
Platform Compatibility
Windows macOS Linux