2012-06-14 154 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); 
相关问题