File Exchange

## A C-mex Function to find N largest number in a Matrix

version 1.0 (6.22 KB) by

A c-mex function to find N largest number in a matrix.

Updated

This is a C-Mex Fucntion to find n largest number in a matrix.

>> x=randperm(20);
>> nmax(x,5)

ans =

20 19 18 17 16

>> nthmax(x,5)

ans =

16

Giovani Tonel

bainhome webID

support my friend£¡

Rudran Rudran

Changshun Deng

>> x=rand(1000,10000);

>> tic;y = sort(x) ; y(end-10);toc

elapsed_time =

17.8590

>> tic;nmax(x,10);toc

elapsed_time =

3.7350

Changshun Deng

i don't know if run my program.
just compare these results:

>> tic;nmax(x,1);toc

elapsed_time =

0.2030

>> tic;max(x);toc

elapsed_time =

1.3910

>> x=rand(1000,10000);
>> tic;nmax(x,10);toc

elapsed_time =

10.1880

>> tic;y = sort(x) ; y(end-10);toc

elapsed_time =

29.4380

Jos x

Same as
b = sort(a) ; b(end-N)
or
b = unique(a) ; b(end-N)
depending on the exact definition of Nth largest number. Both sort and unique are faster than your routines ...

##### MATLAB Release
MATLAB 6.5.1 (R13SP1)