cellfun is slow for lexical sort

1 visualizzazione (ultimi 30 giorni)
Preethi
Preethi il 3 Ott 2013
Commentato: Preethi il 4 Ott 2013
Hi,
I am trying to lexicogrphically sort a matrix (size - 10000x 1) and i used cellfun, but it is very time consuming. Is there any way to speed up. I tried using for loop but i couldn't get the correct result. My code is
im_dct_num = num2cell(im_dct);
im_dct_temp = cellfun(@num2str,im_dct_num,'UniformOutput',false);
Thanking you in advance
Regards,
Preethi
  1 Commento
Walter Roberson
Walter Roberson il 3 Ott 2013
So to check, you would want to sort 1 then 10 to 19 then 2 and so on?

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 3 Ott 2013
You should find it faster to use
im_dct_temp = cellstr( num2str( im_dct(:) ) );
but then you need to decide about treating leading or trailing blanks. For example how should
2.00000000
sort relative to
2
? And would your preferred output for 2 be '2' or '2.' or '2.0' ?
  1 Commento
Preethi
Preethi il 4 Ott 2013
It is working, speed has improved. If I have to use it for a matrix (ex. 19000 x 64) how do I modify the code?

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Cell Arrays in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by