Sorting one matrix with another matrix
조회 수: 4 (최근 30일)
이전 댓글 표시
Hi everyone,
I have a issue regarding matlab
Basically, I have a matrix A with data and the corresponding return in another matrix called B
What I want to do is to sort (from min to max) my first matrix A and to get a matrix C with the corresponding sorted value of matrix B
For example if
A is
2 3
4 1
sorted, A becomes
A_sorted
2 1
4 3
and B
9 4
8 9
I would like to get
C
9 9
8 4
Could you help me figure out how to do it?
Thanks
댓글 수: 0
답변 (2개)
James Tursa
2016년 10월 27일
편집: James Tursa
2016년 10월 27일
[A_sorted,X] = sort(A);
Y = repmat(1:size(A,2),size(A,1),1);
C = B(sub2ind(size(A),X,Y));
댓글 수: 0
Alexandra Harkai
2016년 10월 27일
[A_sorted, idx]=sort(A,1)
A_sorted =
2 1
4 3
idx =
1 2
2 1
B(bsxfun(@plus,idx,size(A,1)*(0:(size(A,2)-1))))
sort(.,1) gives the indices for sorting, which can then be used to re-order B. Using linear indexing for which we need to add 0 to the first column of idx, 2 to the second, and so on...
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!