How can I sort data in cells?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Janna Hinchliff
el 22 de Feb. de 2019
I have some sets of data saved in a cell array, where each element in the cell array is another cell array containing 3 elements, i.e.
data = 1x6 cell array
{1 x 3 cell} {1 x 3 cell} {1 x 3 cell} {1 x 3 cell} {1 x 3 cell} {1 x 3 cell}
The 1x3 cells all contain 2 single numbers and one mxn data set. I want to sort the data by the second number in the data set -
dataovenparamcell{j}{2}
such that cells with the same value of the second number are grouped together. How could I do this?
1 comentario
Respuesta aceptada
Adam Danz
el 22 de Feb. de 2019
Editada: Adam Danz
el 24 de Feb. de 2019
This solution can be reduced two lines but I added a third so it's easier to understand. Fake data are created at the top.
% Create fake data
data = {
{6 5 rand(3,4)}, {0 2 rand(3,4)}, {1 1 rand(3,4)}, ...
{9 4 rand(3,4)}, {3 3 rand(3,4)}, {1 6 rand(3,4)}
};
% Pull out the 2nd numbers and put them into a vector
secondNumber = cell2mat(cellfun(@(x)x(2),data));
% determine the sorted index of the vector
[~, sortIdx] = sort(secondNumber);
%Resort the data
dataSorted = data(sortIdx);
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Shifting and Sorting Matrices 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!