How can I sort a matrix to match another matrix?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello everybody,
I have a question regarding the sorting. I have 2 matrices, A and B. For example:
A = [11 1; 12 1; 13 1; 21 2; 23 2; 31 3; 33 3; 41 4]
B = [1; 2; 1; 3; 1; 4; 2; 3]
How can I sort A (randomly each time) that the 2 column of A is same with B? Such as:
A = [12 1; 23 2; 11 1; 31 3; 13 1; 41 4; 21 2; 33 3]
Stay happy and healty..
댓글 수: 0
채택된 답변
Stephen23
2020년 9월 16일
>> [~,idx] = sort(B);
>> [~,idx(idx)] = sort(A(:,2));
>> A = A(idx,:)
A =
11 1
21 2
12 1
31 3
13 1
41 4
23 2
33 3
댓글 수: 6
Stephen23
2020년 10월 17일
편집: Stephen23
2020년 10월 17일
"Do you have any idea that I can make this work?"
Possibly you could replace the RHS with a string (or character vector) of the number:
A(:,2) == num2str(k)
"...the first column contains strings, whereas second column is numbers."
I strongly recommend that you convert the data into a table, then the first column would be strings and the second column really would be numbers (not strings encoding numbers). Numeric data should be efficiently stored as numeric, which also makes processing it much easier.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!