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

4.0
4.0 | 2 ratings Rate this file 1 Download (last 30 days) File Size: 6.22 KB File ID: #8568 Version: 1.0

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

### Changshun Deng (view profile)

27 Sep 2005 (Updated )

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

File Information
Description

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

MATLAB release MATLAB 6.5.1 (R13SP1)
29 Jun 2006 Giovani Tonel
04 Jun 2006 bainhome webID

support my friend£¡

Comment only
22 May 2006 Rudran Rudran
04 Oct 2005 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

Comment only
04 Oct 2005 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

Comment only
28 Sep 2005 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 ...

Comment only