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

 Akzeptierte Antwort

Fangjun Jiang
Fangjun Jiang am 22 Jul. 2011

0 Stimmen

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)

Weitere Antworten (1)

Jason
Jason am 22 Jul. 2011

0 Stimmen

OK, I think i can use
sort(fname)

1 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by