some thing wrong with SORT function

조회 수: 10 (최근 30일)
tuo
tuo 2021년 3월 8일
댓글: Stephen23 2021년 3월 8일
When I sort using the sort function,the error happened as the picture showed
  댓글 수: 1
Stephen23
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개)

Mehmed Saad
Mehmed Saad 2021년 3월 8일
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

카테고리

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