Matlab如何对数据进行排序?
问题描述:
我试图排序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;
但它没有..
答
您可以生成长度矢量,排序,并使用索引:
l = cellfun(@length ,mydata);
[unused,order] = sort(l);
sortedStruct = mydata(order);