how to sort the elements of 2D matrix and understand their initial column and rows of each elements?
조회 수: 10 (최근 30일)
이전 댓글 표시
I have 20*30 matrix . I want to ascending sort matrix and understand their initial column and rows of each elements. for example a=[7 10 6;8 6 11] then sort b=[6 6 7 8 10 11] ,initial index of 10 is (1 2),.... can any body help me to write matlab code?
댓글 수: 0
채택된 답변
Stephen23
2016년 7월 10일
Perhaps you want something like this:
>> a = [7,10,6;8,6,11]
a =
7 10 6
8 6 11
>> [R,C] = ndgrid(1:size(a,1),1:size(a,2));
>> [b,idx] = sort(a(:));
>> b % sorted values:
b =
6
6
7
8
10
11
>> [R(idx),C(idx)] % initial (R,C) indices of the sorted values
ans =
2 2
1 3
1 1
2 1
1 2
2 3
댓글 수: 0
추가 답변 (1개)
Alexander Venus
2019년 2월 19일
this can also be accomplished more intuitive by using ind2sub:
>> a = [7,10,6;8,6,11]
a =
7 10 6
8 6 11
>> [b,idx] = sort(a(:));
>> b
b =
6
6
7
8
10
11
>> [i, j] = ind2sub(size(a), idx)
i =
2
1
1
2
1
2
j =
2
3
1
1
2
3
댓글 수: 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!