Matlab - 按属性对对象的单元格数组排序
问题描述:
假设我有一个名为Foo的类,它具有一个名为DateTime的datenum属性。如果我有一个Foo对象的单元数组集合,我将如何根据每个对象的DateTime属性对它进行排序?Matlab - 按属性对对象的单元格数组排序
我已经看到引用重载sort方法和使用对象数组,但是我使用了一个单元格数组,因为动态调整大小和那些指令没有举行。有人提出了一些建议?干杯
答
最简单的方法是将时间值提取到一个向量中,对其进行排序,然后使用新的顺序对原始数组进行排序。
%# extract DateTime from the cell array fooCell
dateTime = cellfun(@(x)x.DateTime, fooCell);
[~,sortIdx] = sort(dateTime);
%# reorder fooCell
fooCell = fooCell(sortIdx);
Ahh cellfun magic :)这很好,谢谢! – 2013-05-13 06:13:00