create multiple tables from a CSV in a for loop
显示 更早的评论
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 个评论
"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
2021-9-14
Mohammad Sami
2021-9-15
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
2021-9-15
left_side(1:size(right_side,1), 1:size(right_side,2)) = right_side;
sani
2021-9-19
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!