假设我有一个名为Foo的类,其datenum属性名为DateTime。如果我有一个Foo对象的单元格数组,我将如何根据每个对象的DateTime属性对其进行排序?
我已经看到了重载sort方法和处理对象数组的引用,但由于动态调整大小而我正在使用单元数组,而这些指令并没有停滞不前。有人有什么建议吗?干杯
答案 0 :(得分:4)
最简单的方法是将时间值提取到矢量中,对其进行排序,并使用新的顺序对原始数组进行排序。
%# extract DateTime from the cell array fooCell
dateTime = cellfun(@(x)x.DateTime, fooCell);
[~,sortIdx] = sort(dateTime);
%# reorder fooCell
fooCell = fooCell(sortIdx);