How to perform tall table assignment?

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?

답변 (1개)

Joe Liu
Joe Liu 2018년 6월 16일

1 개 추천

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.

카테고리

도움말 센터File Exchange에서 Tables에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2018년 6월 15일

답변:

2018년 6월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by