2013-05-13 2 views
4

DateTime이라는 datenum 속성을 사용하여 Foo라는 클래스가 있다고 가정합니다. Foo 객체의 셀 배열 컬렉션이 있다면 각 객체의 DateTime 속성에 따라 어떻게 정렬합니까?Matlab - 속성별로 객체의 셀 배열 정렬

정렬 방법이 오버로드되고 개체 배열로 작업하는 것에 대한 참조가 있지만 동적 크기 조정으로 인해 셀 배열을 사용하고 있는데 이러한 지시가 적용되지 않습니다. 누구 제안있어? 건배

답변

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 :) 멋진 작품입니다. 감사합니다. –