Reorder a Cell arrays

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

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

Community Treasure Hunt

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

Start Hunting!