обработать список файлов с определенным расширением в Matlab - PullRequest
13 голосов
/ 02 сентября 2011

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

Ответы [ 4 ]

26 голосов
/ 03 сентября 2011

Как уже упоминали другие, вы должны использовать функцию DIR для вывода списка файлов в каталоге.

Если вы все еще ищете, вот пример, чтобы показать, как использовать функцию:

dirName = 'C:\path\to\folder';              %# folder path
files = dir( fullfile(dirName,'*.xyz') );   %# list all *.xyz files
files = {files.name}';                      %'# file names

data = cell(numel(files),1);                %# store file contents
for i=1:numel(files)
    fname = fullfile(dirName,files{i});     %# full path to file
    data{i} = myLoadFunction(fname);        %# load file
end

Конечно, вам придется предоставить функцию, которая фактически читает и анализирует файлы XYZ.

18 голосов
/ 03 сентября 2011

Используйте dir(), чтобы получить список имен файлов.Вы можете указать подстановочные знаки.

4 голосов
/ 03 сентября 2011

Вы можете использовать

fileName=ls('*xyz').

Переменная fileName будет содержать список всех имен файлов, которые вы можете использовать в цикле for

0 голосов
/ 06 июня 2016

Вот мой ответ:

dirName = 'E:\My Matlab\5';
[sub,fls] = subdir(dirName);
D = [];
j = 1;
for i=1:length(sub),
    files{i} = dir( fullfile(sub{i},'*.xyz') );
    if length(files{i})==1
        D(j) = i; 
        files_s{j} = sub{i}; 
        j=j+1;
    end
end

varaible files_s возвращает пути желаний, которые содержат эти конкретные типы данных!

Функция subdir находится по адресу: http://www.mathworks.com/matlabcentral/fileexchange/1492-subdir--new-

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