create multiple tables from a CSV in a for loop
Ältere Kommentare anzeigen
hello everyone,
I have a large CSV file (too large to upload ~ 50 GB) that I stored in a table. the table columns are time,energy.
I'd like to save segments from this table into separate tables. for that I need the new table name to be changed in some way, lets say:
T=1000;
for i = 1:6
segment = find(old_table.time<T);
new_table(i) = old_table(segment,:); %note
T = T+1000;
end
the row with the note is what I'm trying to do but not sure how.
5 Kommentare
"for that I need the new table name to be changed in some way"
No, you don't need to change the table name.
Changing the table name would be a slow, more complex, and very inefficient approach.
The neat, simple, and very efficient solution would be to use basic MATLAB indexing and a cell array.
"the row with the note is what I'm trying to do but not sure how."
Use a cell array: https://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-cell-array.html
As an alternative you could just use one tall array: https://www.mathworks.com/help///matlab/large-files-and-big-data.html
sani
am 14 Sep. 2021
Mohammad Sami
am 15 Sep. 2021
I don't think you need to predetermine the segment size to store the table in cell array. You can just edit your code as follows.
new_table{i} = old_table(segment,:);
Walter Roberson
am 15 Sep. 2021
left_side(1:size(right_side,1), 1:size(right_side,2)) = right_side;
sani
am 19 Sep. 2021
Antworten (0)
Kategorien
Mehr zu Matrices and Arrays finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!