2013-05-13 278 views
4

假设我有一个名为Foo的类,它具有一个名为DateTime的datenum属性。如果我有一个Foo对象的单元数组集合,我将如何根据每个对象的DateTime属性对它进行排序?Matlab - 按属性对对象的单元格数组排序

我已经看到引用重载sort方法和使用对象数组,但是我使用了一个单元格数组,因为动态调整大小和那些指令没有举行。有人提出了一些建议?干杯

回答

4

最简单的方法是将时间值提取到一个向量中,对其进行排序,然后使用新的顺序对原始数组进行排序。

%# extract DateTime from the cell array fooCell 
dateTime = cellfun(@(x)x.DateTime, fooCell); 

[~,sortIdx] = sort(dateTime); 

%# reorder fooCell 
fooCell = fooCell(sortIdx); 
+0

Ahh cellfun magic :)这很好,谢谢! – 2013-05-13 06:13:00