2010-11-23 31 views
3

我的問題是在如何排序考慮僅在該向量中的每個單元的第一元件單元陣列的第一個元素排序單元的陣列:由每個單元

array_A={[3 1 5] [1 6 2] [2 4 1]} 

我要排序array_A通過這樣每個單元格的第一個元素:

array_A={[*1* 6 2] [*2* 4 1] [*3* 1 5]} 

你有任何想法如何,我可以解決這個問題,在某種程度上,它可以遞歸成千上萬的細胞來完成?

回答

4

最簡單的可能就是鏈接array_A來創建一個數值數組並根據它進行排序。如果矢量長或長度不同,則可能需要首先提取單元格數組中每個元素的第一個元素,然後對其進行排序。

換句話說:

%# extract the first number from each element of array_A 
firstElement = cellfun(@(x)x(1),array_A); 
%# sort (the ~ discards the first output argument of sort) 
[~,sortIdx] = sort(firstElement); 
%# sort array_A using the proper sort order 
array_A_sorted = array_A(sortIdx); 
+0

+1該死!只是打敗了我。 – gnovice 2010-11-23 22:09:57

相關問題