How to filter data?
조회 수: 1 (최근 30일)
이전 댓글 표시
Dear all,
I want to filter a matrix by its date vector. The datevector has the format: dd.mm.yyyy HH:MM:SS. I want to sum up all the data with the same month and year. How can I do that?
댓글 수: 0
채택된 답변
Jan
2013년 1월 16일
dateAsString = {'31.02.2013 11:22:33'; '31.05.2013 11:22:33'}
dateAsVector = datevec(datestr, 'dd.mm.yyyy HH:MM:SS');
yearAndMonth = 100 * dateAsVector(:, 1) + dateAsVector(:, 2);
Now you get values like [201302, 201305] and summing can be done by accumarray directly.
댓글 수: 2
Walter Roberson
2013년 1월 16일
You would probably not want to use those values as direct subscripts into accumarray: you would probably want to unique() them and use the indices. Otherwise your array is going to end up being up to 240000 long with not many entries used.
Jan
2013년 1월 16일
You are right, Walter, and even for a FOR loop approach using the indices obtained by UNIQUE is better.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Cell Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!