Matlab如何对数据进行排序?

时间:2012-06-14 09:57:51

标签: matlab sorting

我正在尝试对mydata进行排序:

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;

但它没有..

1 个答案:

答案 0 :(得分:2)

您可以生成长度向量,对其进行排序并使用索引:

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