exponenta event banner

folders2labels

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

Описание

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

пример

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

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

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

[lbls,files] = folders2labels(___) дополнительно возвращает список файлов. 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

Хранилище данных, указанное как хранилище данных, matlab.io.datastore.FileSet объект или matlab.io.datastore.BlockedFileSet объект.

  • Если ds является хранилищем данных, оно должно содержать 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

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

свернуть все

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

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

Представлен в R2021a