5

DateTime という名前の datenum プロパティを持つ Foo という名前のクラスがあるとします。Foo オブジェクトのセル配列コレクションがある場合、各オブジェクトの DateTime プロパティに従ってどのように並べ替えますか?

sort メソッドのオーバーロードとオブジェクトの配列の操作に関する参照を見てきましたが、動的なサイズ変更のためにセル配列を使用しており、それらの命令がうまくいきません。誰か提案がありますか?乾杯

4

1 に答える 1

6

最も簡単な方法は、時間値をベクトルに抽出して並べ替え、新しい順序を使用して元の配列を並べ替えることです。

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

[~,sortIdx] = sort(dateTime);

%# reorder fooCell
fooCell = fooCell(sortIdx);
于 2013-05-13T05:29:56.180 に答える