need general coding/ command to separate matrix data
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Stephen23
le 7 Sep 2022
Keeping data together is usually better than splitting it apart. How will you process the data?
Réponse acceptée
Bruno Luong
le 7 Sep 2022
Modifié(e) : Bruno Luong
le 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 commentaires
dpb
le 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"...
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!