Split Table at certain rows with for loop
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
JessHmann
am 23 Mai 2019
Kommentiert: Mandeep Kaur
am 16 Sep. 2021
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 Kommentare
Stephen23
am 23 Mai 2019
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.
Akzeptierte Antwort
madhan ravi
am 23 Mai 2019
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 Kommentare
madhan ravi
am 23 Mai 2019
Don't try to name your variable dynamically!! Keep them as is (cell array) you can access them via loop.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!