folders2labels

Получите список меток из имен папок

Описание

Используйте эту функцию, когда вы работаете над задачей классификации машин или глубокого обучения, и ваши маркированные данные хранятся в папках, которые имеют соответствующие имена меток.

пример

lbls = folders2labels(loc) создает список меток на основе имен папок, заданных расположением loc.

lbls = folders2labels(loc,Name,Value) задает дополнительные входные параметры, используя пары "имя-значение". Для примера, 'FileExtensions','.mat' включает только .файлы в скан меток.

lbls = folders2labels(ds) создает список меток на основе файлов, содержащихся в ds. ds может быть datastore, a matlab.io.datastore.FileSet объект, или matlab.io.datastore.BlockedFileSet объект.

[lbls,files] = folders2labels(___) дополнительно возвращает список файлов. The iпервый элемент lbls соответствует метке iпервый файл в files.

Примеры

свернуть все

Создайте папку с именем Files в текущей папке, содержащей три подпапки, Files_1, Files_2, и Files_3. Добавьте в каждую подпапку случайного числа файлов, каждый из которых содержит случайный сигнал случайного размера.

mkdir Files

for kj = 1:3
    fname = ['Files_' int2str(kj)];
    mkdir(fname)
    for jk = 1:randi(4)
        sname = ['sig_' int2str(kj) '_' int2str(jk)];
        sgn = randn(randi([30 50]),randi(2));
        save(sname,'sgn')
        movefile([sname '.mat'],fname)
    end
    movefile(fname,'Files')
end

Перечислите содержимое папок.

dir(['*/*/*'])
Files Found in: Files/Files_1

.            sig_1_1.mat  sig_1_3.mat  
..           sig_1_2.mat  sig_1_4.mat  

Files Found in: Files/Files_2

.            ..           sig_2_1.mat  sig_2_2.mat  

Files Found in: Files/Files_3

.            ..           sig_3_1.mat  sig_3_2.mat  sig_3_3.mat  

Создайте список меток на основе имен папок.

lbls = folders2labels('Files')
lbls = 9x1 categorical
     Files_1 
     Files_1 
     Files_1 
     Files_1 
     Files_2 
     Files_2 
     Files_3 
     Files_3 
     Files_3 

Перечислите имена файлов, сопоставленных с метками.

[lbls,files] = folders2labels('Files');
[~,fnames] = fileparts(files)
fnames = 9x1 string
    "sig_1_1"
    "sig_1_2"
    "sig_1_3"
    "sig_1_4"
    "sig_2_1"
    "sig_2_2"
    "sig_3_1"
    "sig_3_2"
    "sig_3_3"

Удалите Files директория, созданный в начале примера.

rmdir Files s

Входные параметры

свернуть все

Файлы или папки для поиска меток в виде пути. Укажите путь как вектор символов, массив ячеек из векторов символов, строковый скаляр или строковые массивы, содержащий расположение локальных или удаленных файлов или папок.

  • Локальные файлы или папки - Задайте loc как локальный путь к файлам или папкам. Если файлов нет в текущей папке, то локальный путь должен задавать полные или относительные пути. Файлы в подпапках указанной папки включаются по умолчанию. Можно использовать символ подстановки (*) при указании локального пути. Этот символ указывает, что поиск файла включает все соответствующие файлы или все файлы в соответствующих папках.

  • Удаленное местоположение, заданное с помощью международного идентификатора ресурса (IRI).

  • Удаленные файлы или папки - Задайте loc чтобы быть полными путями к файлам или папкам в качестве единого указателя ресурса (URL) формы hdfs:///path_to_file. Для получения дополнительной информации см. раздел Работа с удаленными данными.

folders2labels ищет все форматы файлов. Чтобы задать пользовательский список расширений файлов для сканирования, используйте FileExtensions аргумент.

Пример: 'whale.mat'

Пример: '../dir/data/signal.mat'

Типы данных: char | string | cell

Репозиторий данных, заданный как datastore, a matlab.io.datastore.FileSet объект, или matlab.io.datastore.BlockedFileSet объект.

  • Если ds является datastore, он должен содержать Files свойство, из которого анализируются имена меток.

  • Если ds является matlab.io.datastore.FileSet объект, folders2labels получает имена меток из имен файлов, перечисленных в FileInfo свойство ds.

  • Если ds является matlab.io.datastore.BlockedFileSet объект, folders2labels получает имена меток из имен файлов, перечисленных в BlockInfo свойство ds.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: folders2labels('C:\dir\signaldata','FileExtensions','.csv') задает локальный путь и включает только файлы CSV в скан меток.

Флаг включения подпапки, заданный как true или false. Задайте true включать все файлы и подпапки в каждую папку или false для включения только файлов в каждую папку.

Пример: 'IncludeSubfolders',true

Типы данных: logical | double

Расширения файла сигнала, заданные как строковый скаляр, строковые массивы, вектор символов или массив ячеек векторов символов.

Пример: 'FileExtensions','.csv'

Типы данных: string | char | cell

Выходные аргументы

свернуть все

Список меток, возвращенный как категориальный вектор.

Список файлов, возвращенный как строковый вектор. The iпервый элемент lbls соответствует метке для iпервый файл в files.

Введенный в R2021a