2014-10-10 2 views
0

Мне нужно импортировать некоторые текстовые файлы в виде матрицы в Matlab. Может ли кто-нибудь помочь мне для кода, пожалуйста? Вот имена моих текстовых файлов.Импорт нескольких текстовых файлов в Matlab

elist_S06n1.txt 
elist_S06n2.txt 
elist_S06n3.txt 
elist_S06n4.txt 
elist_S07n1.txt 
elist_S07n2.txt 
elist_S07n3.txt 
elist_S07n4.txt 
. 
. 
. 
elist_S27n5.txt 

Так, до elist_S09n1.txn собирается с 1 по 4, то это будет от 1 до 5.

Спасибо заранее.

+1

Пожалуйста, покажите нас, что вы пробовали до сих пор. У вас возникли проблемы с построением правильных [циклов] (http://www.mathworks.nl/help/matlab/ref/for.html), [поворот числовых значений в строки] (http://www.mathworks.nl/ help/matlab/ref/sprintf.html) для вашего имени файла или [импорт данных] (http://www.mathworks.nl/help/matlab/data-import-and-export.html)? – MeMyselfAndI

+0

Я просто попытался пересмотреть следующий код, но из-за имен файлов я не справился. numfiles = 95; mydata = ячейка (1, numfiles); для k = 1: numfiles myfilename = sprintf ('file% d.txt', k); mydata {k} = importdata (myfilename); конец – Ram

ответ

0

Спасибо за ваше обновление, чтобы мы могли видеть, что вы пробовали до сих пор.

Мне кажется, что у вас возникли трудности с созданием правильного имени файла. Вместо того, чтобы перебирать индекс вашего массива ячеек, вы можете использовать два цикла, один от 6 до 27, а другой - от 1 до 4 или 5. На основе этих значений вы можете легко создать желаемое имя файла (помните о начале нуля!). Внутри цикла вы отслеживаете индекс для результирующего массива ячеек.

Кстати, если подсчитать количество файлов, я приезжаю в общей сложности 18 * 5 + 4 * 4 = 106, а не 95.

Код:

numfiles = (27-9)*5 + (9-5)*4; 
mydata = cell(1, numfiles); 

idx = 0; % index for mydata 
n = 4; 
for k1 = 6:27 
    if k1 == 10 
     n = 5; % switch to 5 files if k1 reaches 10 
    end 
    for k2 = 1:n 
     idx = idx+1; 
     myfilename = sprintf('elist_S%02dn%d.txt', k1, k2); 
     mydata{idx} = importdata(myfilename); 
    end 
end 
+0

Благодарим вас Янв. – Ram

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