need general coding/ command to separate matrix data
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Muhammad Asad
el 6 de Sept. de 2022
Comentada: dpb
el 7 de Sept. de 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 comentarios
Stephen23
el 7 de Sept. de 2022
Keeping data together is usually better than splitting it apart. How will you process the data?
Respuesta aceptada
Bruno Luong
el 7 de Sept. de 2022
Editada: Bruno Luong
el 7 de Sept. de 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 comentarios
dpb
el 7 de Sept. de 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"...
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!