need general coding/ command to separate matrix data
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Muhammad Asad
am 6 Sep. 2022
Kommentiert: dpb
am 7 Sep. 2022
I have a for loop y= 0:2:8 and whenever the for loop value chnaged it generates two values which was stored in a matrix. Now I have a complete matrix in which column one have y=0 then several values in a rows then y changed and several vlaues in a row as shown in fig.
final matrix is:
0 5 9
0 7 3.3
0 5.5 9
1 4.0 3.5
1 2 3.3
...................... so on.
Question: I need a general coding that store number of rows in a seperate matrix/ vector when y value is fixed. I mean when y=0 then all rows with y=0 stored in a seperate vector/ matrix. Then again y changed and results in several rows. These rows stored in a seperate vector/matrix.
Your support will be highly appreciated.
Regards
4 Kommentare
Stephen23
am 7 Sep. 2022
Keeping data together is usually better than splitting it apart. How will you process the data?
Akzeptierte Antwort
Bruno Luong
am 7 Sep. 2022
Bearbeitet: Bruno Luong
am 7 Sep. 2022
Try this:
% Fake data
finalmatrix=sortrows(randi(10,30,3),1)
y = finalmatrix(:,1);
n=diff(find([true; diff(y)~=0; true]))
splitmatrix=mat2cell(finalmatrix,n,size(finalmatrix,2));
splitmatrix{:}
4 Kommentare
dpb
am 7 Sep. 2022
I got totally lost in the explanation above, but if @Bruno Luong's solution for splitmatrix is the right data, then
figure
hold on
cellfun(@(c)plot(c(:,2),c(:,3)),splitmatrix)
should be close to what you're looking for.
As always, "salt to suit"...
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical 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!