На первом месте вам нужно найти папки внутри вашей основной папки (предположим, что это имя main_folder
). Вы можете сделать это с помощью dir
команду, которая возвращает структуру с несколькими интересными особенностями:
dirContents = dir('main_folder')
Выходы
dirContents =
9x1 struct array with fields:
name
date
bytes
isdir
datenum
перебираем результате ищет записи с isdir
полем, установленным в 1 (будьте осторожны с .
и ..
). Если вы также хотите выполнять поиск во вложенных папках, рекурсивно применяйте эту процедуру.
Для каждой записи получите файлы с требуемым расширением. Вы можете использовать dir
снова символы:
% Loop over the directories inside 'main_folder'
for indDir = 1:numel(dirContents)
thisEntry = dirContents{indDir};
if thisEntry.isdir
% If entry is a directory, search .mat files
matFilesInFolder = dir(['main_folder/',thisEntry.name,'/*.mat']);
% For each found .mat file, load contents
for indMat = 1:numel(matFilesInFolder)
thisMat = matFilesInFolder{indMat};
matContents = load(['main_folder/',thisEntry.name,'/',thisMat.name]);
% HERE DO WHATEVER YOU WANT WITH THE CONTENTS OF THE FILE
end
end
end
Это трудная часть. Код не был протестирован, возможно, он нуждается в исправлениях.
Я не уверен, что вам нужно делать с данными. Проверьте, как содержимое загружается и обрабатывает их в соответствии с вашими потребностями.
Это файлы .m или файлы .mat? Обычно .m содержит код и .mat содержит данные, но вы говорите, что у вас есть .m с данными. – Brick
@Brick Я сожалею, что это файлы .mat. все файлы содержат много чтений. и они хранятся в одной матрице 3000 * 6. –
@Brick ya are are .mat files –