Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.
|
|
Spider
Posts:
23
Registered:
12/7/04
|
|
sorting, ranking
Posted:
Aug 21, 2009 12:16 PM
|
|
Hello All,
I have encountered some weird behavior with matlab when attempting to rank a list of numbers.
lets assume that I generate a vector of random numbers.
K>>A = rand(1,10)*100
A =
Columns 1 through 8
79.2207 95.9492 65.5741 3.5712 84.9129 93.3993 67.8735 75.7740
Columns 9 through 10
74.3132 39.2227
If I then sort these numbers
K>>[V,I] = sort(A)
V =
Columns 1 through 8
3.5712 39.2227 65.5741 67.8735 74.3132 75.7740 79.2207 84.9129
Columns 9 through 10
93.3993 95.9492
I =
4 10 3 7 9 8 1 5 6 2
and wish to obtain their ranking
K>>temp = [1:10]
temp =
1 2 3 4 5 6 7 8 9 10
K>> rank = temp(I)
rank =
4 10 3 7 9 8 1 5 6 2
I should get back a permutation of the vector temp in terms of the ordered indices of sorted values from A, instead this code simply returns the I vector
the correct execution of the command rank = temp(I) should return
rank = [7 10 3 1 8 9 4 6 5 2]
Am I missing something here, or mistaken about how matlab should behave in this case? Or is there simply a bug?
thanks
|
|
|
|