5

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

我已经看到对重载排序方法和使用对象数组的引用,但是由于动态调整大小,我使用的是元胞数组,并且这些指令无法执行。有人有什么建议吗?干杯

4

1 回答 1

6

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

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

[~,sortIdx] = sort(dateTime);

%# reorder fooCell
fooCell = fooCell(sortIdx);
于 2013-05-13T05:29:56.180 回答