MATLAB Answers

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

34 ビュー (過去 30 日間)
dm
dm 2011 年 10 月 25 日
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

採用された回答

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by