Matlab - sort cell array of objects by property

前端 未结 1 692
北海茫月
北海茫月 2021-01-13 18:39

Suppose I had a class named Foo, with a datenum property named DateTime. If I had a cell array collection of Foo objects, how would I sort that according to each object\'s D

1条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-01-13 19:12

    The simplest approach is to extract the time-values into a vector, sort that, and use the new order to sort the original array.

    %# extract DateTime from the cell array fooCell
    dateTime = cellfun(@(x)x.DateTime, fooCell);
    
    [~,sortIdx] = sort(dateTime);
    
    %# reorder fooCell
    fooCell = fooCell(sortIdx);
    

    0 讨论(0)
提交回复
热议问题