Effacer les filtres
Effacer les filtres

cellfun is slow for lexical sort

2 vues (au cours des 30 derniers jours)
Preethi
Preethi le 3 Oct 2013
Commenté : Preethi le 4 Oct 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 commentaire
Walter Roberson
Walter Roberson le 3 Oct 2013
So to check, you would want to sort 1 then 10 to 19 then 2 and so on?

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 3 Oct 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 commentaire
Preethi
Preethi le 4 Oct 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?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by