# some thing wrong with SORT function

조회 수: 10 (최근 30일)
tuo 2021년 3월 8일
댓글: Stephen23 2021년 3월 8일
When I sort using the sort function，the error happened as the picture showed
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Stephen23 2021년 3월 8일
"b does not given the correct location"
It gives exactly the location described in the sort documentation, which states "I is the same size as A and describes the arrangement of the elements of A into B along the sorted dimension. For example, if A is a vector, then B = A(I)." Lets try it and see if that is what MATLAB returns:
V = [35,10,16,10,34];
[a,b] = sort(V,'ascend')
a = 1×5
10 10 16 34 35
b = 1×5
2 4 3 5 1
c = V(b)
c = 1×5
10 10 16 34 35
So far you have not given any explanation of what you think the problem is. I will make a wild guess that you want the inverse indices for applying on the LHS, which can be obtained like so:
[~,d] = sort(b)
d = 1×5
5 1 3 2 4
e = nan(size(d));
e(d) = V
e = 1×5
10 10 16 34 35

댓글을 달려면 로그인하십시오.

### 답변 (1개)

c = [35 10 16 11 34];
Now after sorting
a = [10 11 16 34 35];
what is the position of first index of a in c. it is 2, for 2nd index of a the position is 4 in c and goes on.
so b is
b = [2 4 3 5 1];
it is giving you positions of elements of a in c.
if you write
c(b)
you will get a
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
tuo 2021년 3월 8일
thank you very much

댓글을 달려면 로그인하십시오.

### 카테고리

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