2013-05-13 276 views
4

假設我有一個名爲Foo的類,它具有一個名爲DateTime的datenum屬性。如果我有一個Foo對象的單元數組集合,我將如何根據每個對象的DateTime屬性對它進行排序?Matlab - 按屬性對對象的單元格數組排序

我已經看到引用重載sort方法和使用對象數組,但是我使用了一個單元格數組,因爲動態調整大小和那些指令沒有舉行。有人提出了一些建議?乾杯

回答

4

最簡單的方法是將時間值提取到一個向量中,對其進行排序,然後使用新的順序對原始數組進行排序。

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

[~,sortIdx] = sort(dateTime); 

%# reorder fooCell 
fooCell = fooCell(sortIdx); 
+0

Ahh cellfun magic :)這很好,謝謝! – 2013-05-13 06:13:00