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

2 ビュー (過去 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 件)

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by