필터 지우기
필터 지우기

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?

채택된 답변

Stephen23
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

추가 답변 (1개)

Alexander Venus
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

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by