1

我正在尝试对 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;

但它没有..

4

1 回答 1

2

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

  l = cellfun(@length ,mydata);
  [unused,order] = sort(l);
  sortedStruct = mydata(order);
于 2012-06-14T10:01:45.420 回答