【发布时间】:2013-05-13 04:47:57
【问题描述】:
假设我有一个名为 Foo 的类,具有一个名为 DateTime 的 datenum 属性。如果我有一个 Foo 对象的元胞数组集合,我将如何根据每个对象的 DateTime 属性对其进行排序?
我已经看到有关重载排序方法和使用对象数组的参考,但是由于动态调整大小,我使用的是元胞数组,并且这些指令无法执行。有人有什么建议吗?干杯
【问题讨论】:
标签: matlab cell-array
假设我有一个名为 Foo 的类,具有一个名为 DateTime 的 datenum 属性。如果我有一个 Foo 对象的元胞数组集合,我将如何根据每个对象的 DateTime 属性对其进行排序?
我已经看到有关重载排序方法和使用对象数组的参考,但是由于动态调整大小,我使用的是元胞数组,并且这些指令无法执行。有人有什么建议吗?干杯
【问题讨论】:
标签: matlab cell-array
最简单的方法是将时间值提取到向量中,对其进行排序,然后使用新顺序对原始数组进行排序。
%# extract DateTime from the cell array fooCell
dateTime = cellfun(@(x)x.DateTime, fooCell);
[~,sortIdx] = sort(dateTime);
%# reorder fooCell
fooCell = fooCell(sortIdx);
【讨论】: