Reorder a Cell arrays

5 views (last 30 days)
Jason
Jason on 22 Jul 2011
Hi. I am using uiget with multiselect to perform an operation on several text files. I assign the cell aray fname as below.
[fname,pname]=uigetfile('*.txt','select the Miscall Matrix files', 'MultiSelect', 'on',startpname);
My text files are always number are always of the form *1.txt to **12.txt and it always puts the last file first in the cell array. Is there a quick way to reorder the cell array "fname" Thanks

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 22 Jul 2011
Yep. This is pretty common. You need to do some processing.
fname={'abc3.txt','abc2.txt','abc1.txt','abc10.txt','abc12.txt'};
Num=regexp(fname,'\d+','match');
Num=char(cellfun(@cell2mat,Num,'uni',false));
[Num,Index]=sort(str2num(Num));
fname=fname(Index)

More Answers (1)

Jason
Jason on 22 Jul 2011
OK, I think i can use
sort(fname)
  1 Comment
Jason
Jason on 22 Jul 2011
Nope didn't work it put 1,10,1,2,3,4... and so on.

Sign in to comment.

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!