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

 Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 22 Juil 2011

0 votes

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)

Plus de réponses (1)

Jason
Jason le 22 Juil 2011

0 votes

OK, I think i can use
sort(fname)

1 commentaire

Jason
Jason le 22 Juil 2011
Nope didn't work it put 1,10,1,2,3,4... and so on.

Connectez-vous pour commenter.

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by