Преобразование нескольких файлов .txt в формат .mat в одной папке - PullRequest
0 голосов
/ 24 января 2019

У меня есть много файлов .txt, которые содержат n строк и 7 столбцов, каждый из которых разделен пробелами.Я хочу преобразовать каждый файл в файл .mat и сохранить его в той же папке.

Я пробовал это, но это не работает:

files = dir('*.txt');
for file = files'
    data=importdata(file.name);
    save(file.name, 'data');
end

Хотя это работает для одного файла, яЯ хочу сделать это программно, так как у меня очень много TXT-файлов:

data=importdata('myfile.txt');
save('myfile', 'data');

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 24 января 2019

@ scotty3785 ответы работали хорошо, и это работало для меня, если кому-то это нужно:

files = dir('*.txt');
for i=1:length(files)
    data=importdata(files(i).name);
    save(erase(files(i).name,".txt"), 'data');
end
0 голосов
/ 24 января 2019

Это должно работать

files = dir('*.txt');
for idx = 1:length(files)
   file_name = files(idx).name;
   fprintf("Processing File %s\n",file_name);
   data=importdata(file_name);
   [filepath,name,ext] = fileparts(fullfile(pwd,file_name));
   save([name '.mat'],'data');
end

dir создает структуру, которую необходимо проиндексировать, поэтому мы создаем цикл for, который начинается с 1 и продолжается до тех пор, пока все элементы dir не будут обработаны.Обратите внимание, что в коде я также добавил раздел для разделения имени файла (например, file1.txt) на имя и расширение файла.Поэтому мы используем только часть имени, а не расширение при создании файла mat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...