4
假設我有一個名爲Foo的類,它具有一個名爲DateTime的datenum屬性。如果我有一個Foo對象的單元數組集合,我將如何根據每個對象的DateTime屬性對它進行排序?Matlab - 按屬性對對象的單元格數組排序
我已經看到引用重載sort方法和使用對象數組,但是我使用了一個單元格數組,因爲動態調整大小和那些指令沒有舉行。有人提出了一些建議?乾杯
假設我有一個名爲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