How to find the top 10% value of the matrix?

HI,
I have a 10x10 matrix and the value is random
How do I find the the top 10% value of the matrix?
ex: if the value is 1~100,I want to get the answer is 90~100
Thanks~

1 Commento

Because I assume that this is a homework question, please explain, what you have done so far and ask a specific question about the occurring problems.

Accedi per commentare.

 Risposta accettata

Più risposte (1)

TG
TG il 12 Feb 2015
Modificato: TG il 12 Feb 2015
To select the top 10% of a matrix, take the total number of values and multiply by .1. Then sort and extract as in the accepted answer above:
[m n] = size(X); %where X is your matrix
TN = m*n;
TTP = TN*.1;
TTP = ceil(TTP); %round in case TN is an odd number and TTP is not an integer
(i.e. 5x5 = 25, 25/10 = 2.5)
For matrices, 'sort' sorts each column individually, so first covert the matrix into a single vector, then sort:
VX = X(:); %places values in single column
[val,ind] = sort(VX, 'descend');
y = VX(ind(1:TTP));
You can play around with the 'ind' variable and the code to locate these values in the original matrix.

Tag

Richiesto:

BB
il 17 Set 2012

Modificato:

TG
il 12 Feb 2015

Community Treasure Hunt

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

Start Hunting!

Translated by