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 に答える