Order columns of matrix based on other matrix
조회 수: 2 (최근 30일)
이전 댓글 표시
So in one matrix A I have the order of the elements
A = 3 1 3 1 3
2 2 2 2 1
1 3 1 3 2
and in the other matrix B are the actual values
B = 1 5 5 1 7
2 6 7 2 4
4 8 8 6 5
How can I use the columns of A to order the columns of B?
Result = 4 5 8 1 5
2 6 7 2 7
1 8 5 6 4
So e.g. for the 5th column: 5 becomes the first value, 7 the first and 4 the third.
result(1,5) = B(A(1,5), 5); % A(1,5) = 3
result(2,5) = B(A(2,5), 5); % A(2,5) = 1
result(3,5) = B(A(3,5), 5); % A(3,5) = 2
Can I do this without using a loop?
댓글 수: 0
채택된 답변
David Hill
2021년 1월 28일
Result=B(A+[0:3:12]);
댓글 수: 2
Adam Danz
2021년 1월 28일
Nice idea. To make it work for all matrix sizes,
Result=B(A+[0:size(A,1):numel(A(:,1:end-1))]);
참고 항목
카테고리
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!