Split Table at certain rows with for loop
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I am trying to split my table at ceratin rows. I have several Data sets, so the row numbers are not always the same. I have stored the rows where the table should split in an array. If, for example, my array is [500 900 1200], then I want the table to be split as following:
T1=row 1-499
T2=row 500-899
T3=row 900-1199
T4=row 1200-end
I have tried doing this with a for loop for the middle section (T2, T3) but this returns the table together and not split. Any ideas? :)
% array with the rows where the table should be split is Split_Rows
for a=length(Split_Rows)-1
k=Split_Rows;
SplitTable=FlowData([k:k(a+1)-1],:);
end
2 个评论
Stephen23
2019-5-23
Using numbered variables is a sign that you are doing something wrong.
Rather than using numbered variables, you should use simple and efficient indexing, exactly as madhan ravi's answer shows.
采纳的回答
madhan ravi
2019-5-23
v=[1 500 900 1200];
% ^--appended 1 at the beginning
Splittable=cell(numel(v)-1,1);
for k=2:numel(v)
Splittable{k-1}=T(v(k-1):v(k)-1,:);
end
Splittable{k}=T(v(end):end,:) % where T is your table
4 个评论
madhan ravi
2019-5-23
Don't try to name your variable dynamically!! Keep them as is (cell array) you can access them via loop.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!