Matlab - 按属性对对象的单元格数组进行排序

时间:2013-05-13 04:47:58

标签: matlab cell-array

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

我已经看到了重载sort方法和处理对象数组的引用,但由于动态调整大小而我正在使用单元数组,而这些指令并没有停滞不前。有人有什么建议吗?干杯

1 个答案:

答案 0 :(得分:4)

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

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

[~,sortIdx] = sort(dateTime);

%# reorder fooCell
fooCell = fooCell(sortIdx);