2014-02-20 2 views
2

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

A = dir('*.txt'); 
for i=1:size(A) 
    text = function('Text'+i+'.txt'); 
end 

Так что моя проблема, я не могу найти правильный синтаксис, чтобы получить текстовый файл в я-позиции. Спасибо!

ответ

4

Вы не можете просто add строки, такие как 'Text' и номера i. Вы должны преобразовать i в строку, а затем сростить три:

text = function(['Text', num2str(i), '.txt']); 

В качестве альтернативы, мой предпочтительным решением было бы использовать sprintf:

text = function(sprintf('Text%i.txt', i)); 

sprintf заменит %i участие в строка целым числом-представлением i.

EDIT:

Перечитывая свой вопрос, вы можете быть лучше использовать информацию из dir вместо строит свои собственные имена:

text = function(A(i).name); 

Структура A будет содержать информацию на каждый файл, включая его имя. Это сделает ваш код несколько более стабильным.

+0

Спасибо! Моя проблема в том, что в каталоге больше файлов * .txt, чем я хочу использовать. Можно ли сказать что-то вроде «добавьте каждый файл в A, который начинается с буквы« t »и имеет расширение« .txt »? – Baloo

+0

Nevermind. Спасибо, все равно. – Baloo

+2

Ну, вы, очевидно, можете сделать' A = dir (' т * .txt ') '. – sebastian

Смежные вопросы