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

1 view (last 30 days)
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

Accepted Answer

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

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!