При работе с каталогами и файлами в MATLAB часто необходимо получить список подкаталогов внутри данного каталога. Эту задачу можно решить, используя различные методы MATLAB. В этой статье блога мы рассмотрим несколько подходов к отображению подкаталогов, а также примеры кода для каждого метода.
Метод 1: использование функции «dir»
Функция «dir» в MATLAB может использоваться для получения структурного массива, содержащего информацию о файлах и каталогах в указанной папке. Фильтруя массив структур на основе поля isdir, мы можем легко извлечь подкаталоги.
folder = '/path/to/directory';
dirInfo = dir(folder);
subdirectories = dirInfo([dirInfo.isdir]).name;
Метод 2: использование функций «fullfile» и «dir».
Функция «fullfile» в MATLAB полезна для построения допустимых путей к файлам или папкам. Комбинируя «fullfile» с функцией «dir», мы можем перебирать все элементы в каталоге и идентифицировать подкаталоги.
folder = '/path/to/directory';
dirInfo = dir(fullfile(folder, '*'));
subdirectories = {dirInfo([dirInfo.isdir]).name}';
subdirectories = subdirectories(~ismember(subdirectories, {'.', '..'}));
Метод 3: использование класса «папка»
В MATLAB появился класс «папка» в R2019b, который обеспечивает более удобный способ работы с каталогами. Класс «папка» имеет свойство «подпапки», которое возвращает список всех подпапок в каталоге.
folder = folder('/path/to/directory');
subdirectories = folder.subfolders;
Метод 4: использование регулярных выражений
Регулярные выражения можно использовать для фильтрации подкаталогов из списка файлов и каталогов. Используя функцию regexp в MATLAB, мы можем сопоставлять шаблоны, представляющие подкаталоги.
folder = '/path/to/directory';
dirInfo = dir(folder);
subdirectories = {dirInfo([dirInfo.isdir]).name};
subdirectories = subdirectories(~cellfun(@isempty, regexp(subdirectories, '^[^.].*$')));
В этой статье блога мы рассмотрели различные методы вывода подкаталогов в MATLAB. Эти методы обеспечивают гибкость и могут использоваться в зависимости от ваших конкретных требований. Предпочитаете ли вы использовать функцию «dir», функции «fullfile» и «dir», класс «folder» или регулярные выражения, MATLAB предоставляет несколько вариантов для эффективного выполнения этой задачи.