2012-06-14 4 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); 
Смежные вопросы