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

 Risposta accettata

Fangjun Jiang
Fangjun Jiang il 22 Lug 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)

Più risposte (1)

Jason
Jason il 22 Lug 2011
OK, I think i can use
sort(fname)

1 Commento

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

Accedi per commentare.

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by