2012-06-14 199 views
1

我試圖排序MYDATA:Matlab如何對數據進行排序?

mydata = 

    Columns 1 through 3 

    [11512x2 double] [17330x2 double] [15044x2 double] 

我想長度對它進行排序(升序)(MYDATA(1)),長度(MYDATA(2))和長度(MYDATA(3)),

因此,排序之後我得:

mydata = 

    Columns 1 through 3 

    [11512x2 double]  [15044x2 double]  [17330x2 double] 

如果它是一個結構,我可以這樣做:

[blah, order] = sort([mydata(:).Area],'ascend'); 

然後:

sortedStruct = mydata(order); 
mydata = sortedStruct; 

但它沒有..

回答

2

您可以生成長度矢量,排序,並使用索引:

l = cellfun(@length ,mydata); 
    [unused,order] = sort(l); 
    sortedStruct = mydata(order); 
相關問題