Matlab: как я могу изменить следующую программу - PullRequest
0 голосов
/ 28 февраля 2010

У меня 500 файлов .TXT, например:

abc-1.TXT  
adfer-2.txt  
affd-3.TXT  
asxdcccc-4.TXT  
... 

Как изменить следующую программу для достижения результатов в порядке номеров в именах файлов:

Names = dir('MyFile\*.TXT');  
for i = 1:500  
    fn = strcat(['MyFile\' Names(i).name]);  
    ...  

есть ли способ сделать цикл для чисел, содержащихся в именах файлов?
проблема с вышеуказанной программой заключается в том, что я получил результаты, которые не следуют порядку чисел, содержащихся в именах файлов.

СПАСИБО всем, кто помог мне продвинуться в моей работе.

1 Ответ

1 голос
/ 28 февраля 2010
names={'abc-1.TXT';
'affd-3.TXT';
'sdfg-33.txt';
'adfer-2.txt';
'asxdcccc-4.TXT'};

for i=1:length(names)
    [v1 v2]=regexp(names{i},'[1-9]*');
    numbers(i)=str2num(names{i}(v1:v2));
end

[B,IX] = sort(numbers);
names{IX}

В последней строке имена будут напечатаны в порядке номеров. Я думаю, вы можете продолжить отсюда.

О, и вы должны начать с

Names = dir('*.TXT');
names = Names.name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...