Filter löschen
Filter löschen

Sort cell array with numeric data by values of first index in matrix

1 Ansicht (letzte 30 Tage)
Hello,
I got a set of contour data obtained by [C h] = contour(X,Y,Z) which I want to split into a cell array and sort with respect to contour level.
E.g. C might look like (a lot more than 1 point per level in the real data, but just to illustrate):
80.7815 1.0000
-0.7920 0.1039
32.1231 1.0000
0.9921 0.4542
72.1341 1.0000
-0.1358 0.4279
Then I want the cell array to look like:
Cn{1} = [32.1231 1; 0.9921 0.4542];
Cn{2} = [72.1341 1; -0.1358 0.427];
Cn{3} = [80.7815 1; -0.7920 0.1039];
however, what I manage to produce myself is:
Cn{1} = [80.7815 1; -0.7920 0.1039];
Cn{2} = [32.1231 1; 0.9921 0.4542];
Cn{3} = [72.1341 1; -0.1358 0.427];
So the question is, how can I sort the cells after Cn{k}(1,1)?
Best regards, dm

Akzeptierte Antwort

dm
dm am 25 Okt. 2011
Managed to figure it out:
firstIdx = cellfun(@(x)x(1,1),Cn);
[dummy,order] = sort(firstIdx);
Cns = Cn(order);

Weitere Antworten (0)

Kategorien

Mehr zu Shifting and Sorting 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!

Translated by