cellfun is slow for lexical sort

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 件のコメント

Walter Roberson
Walter Roberson 2013 年 10 月 3 日
So to check, you would want to sort 1 then 10 to 19 then 2 and so on?

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2013 年 10 月 3 日

0 投票

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 件のコメント

Preethi
Preethi 2013 年 10 月 4 日
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?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeShifting and Sorting Matrices についてさらに検索

製品

タグ

質問済み:

2013 年 10 月 3 日

コメント済み:

2013 年 10 月 4 日

Community Treasure Hunt

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

Start Hunting!

Translated by