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