COnvert x,y, time array into 3D matrix
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello,
I have an array of events captured at different pixels at different times. Each row has x, y and time values.
Here a simple example (x, y, time) with a short list of events:
1, 3, 2
1, 3, 2.3
1, 3, 2
1, 3, 2.1
1, 3, 2.4
4, 5, 1
4, 5, 1.4
4, 5 , 1
4, 5, 1.2
3 , 4, 1
3, 4, 1.4
3, 4 ,2
As can be seen, some times are duplicates for the same x,y.
I would like to create a 3D matrix made of x,y slices arranged according to time.
Duplicate times for the same pixel should be summed.
I would appreciate any suggestion.
댓글 수: 0
채택된 답변
Star Strider
2022년 5월 16일
Try this —
xyt = [1, 3, 2
1, 3, 2.3
1, 3, 2
1, 3, 2.1
1, 3, 2.4
4, 5, 1
4, 5, 1.4
4, 5 , 1
4, 5, 1.2
3 , 4, 1
3, 4, 1.4
3, 4 ,2];
[Uxytr,~,ix] = unique(xyt(:,3));
Out = accumarray(ix,(1:size(xyt,1))',[],@(x){[sum(xyt(x,[1 2]),1) unique(xyt(x,3))]})
There are 7 unique times, and the (x,y) values for those times are summed, with the times themselves remaining unchanged.
.
댓글 수: 4
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!