How to perform tall table assignment?

8 vues (au cours des 30 derniers jours)
Joe Liu
Joe Liu le 15 Juin 2018
Réponse apportée : Joe Liu le 16 Juin 2018
I am trying to build a large table. I'm expecting the table to be 431,832×72. If I generate a normal table of this size, assignment and access is very, very slow. I'm assuming that I'm running out of memory.
I have tried to instead use a tall table. When I initialize my data I use the following code:
trainingData = cell2table(cell(431832,72), 'VariableNames', tdColumns); % initialize out data
trainingData = tall(trainingData);
After I build the row to add, with a traditional table I would assign it by:
trainingData{rowIdx,:} = addRow;
However, if my table is tall, I get this error:
Indexed assignments of the form T(...,...) = B are not supported for tall table.
What's the proper way to build a large table?

Réponses (1)

Joe Liu
Joe Liu le 16 Juin 2018
Well, turns out the problem isn't memory or any of that jazz. It's the tables.
I've got code that's been running over 24 hours that uses tables.
I switched to arrays and cells and it finished in under 5 minutes. Sheesh. My computer handled 400000x400 arrays and cells without any memory issues.
I guess tables are just stupid slow for large sets.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by