Relative Ranking of position in an array
Show older comments
Hi!
I have a large array with 10 rows of numerical data. I am trying to find an 'ordering' by size of all the elements. I turned the raw data into an indexed array through maxk:
[M10,I10]= maxk(dgoutput,10,1)
And my I10 array has the row number for the elements in order from greatest to least (1-10). It looks like this:
1 2 1 1 1 2 1 1 2
2 1 3 6 3 1 3 3 1
4 3 4 3 2 3 4 2 3
3 4 2 7 4 6 2 5 4
5 5 5 5 6 7 5 4 5
8 8 6 4 5 4 6 6 7
9 7 7 2 7 5 7 9 6
7 6 9 9 8 9 10 8 8
6 9 8 8 9 8 8 7 9
10 10 10 10 10 10 9 10 10
And I'm trying to find a way to count the occurrences when one number occurs in a higher row than another. As an example a
Count (1>2) would return 6 since there are 6 columns where 1 is above 2.
and Count(2>1) would return 3, etc.
Any help would be appreciated!
Accepted Answer
More Answers (1)
I10=[1 2 1 1 1 2 1 1 2
2 1 3 6 3 1 3 3 1
4 3 4 3 2 3 4 2 3
3 4 2 7 4 6 2 5 4
5 5 5 5 6 7 5 4 5
8 8 6 4 5 4 6 6 7
9 7 7 2 7 5 7 9 6
7 6 9 9 8 9 10 8 8
6 9 8 8 9 8 8 7 9
10 10 10 10 10 10 9 10 10];
[r1,~]=find(I10==1);
[r2,~]=find(I10==2);
count1gt2 = sum(r1<r2)
count2lt1 = sum(r2<r1)
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!