主要内容

本页采用了机器翻译。点击此处可查看英文原文。

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 个元素对应于 files 中第 i 个文件的标签。

示例

全部折叠

在当前文件夹中创建一个名为 Files 的文件夹,其中包含三个子文件夹:Files_1Files_2Files_3。在每个子文件夹中添加随机数量的文件,每个文件都包含一个大小随机的随机信号。

mkdir Files

for kj = 1:3
    fname = "Files_" + kj;
    mkdir(fname)
    for jk = 1:randi(4)
        sname = "sig_" + kj + "_" + 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_2.mat  sig_1_3.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 = 9×1 categorical
     Files_1 
     Files_1 
     Files_1 
     Files_1 
     Files_2 
     Files_2 
     Files_3 
     Files_3 
     Files_3 

列出与这些标签相关的文件名称。

[~,files] = folders2labels("Files");
[~,fnames] = fileparts(files)
fnames = 9×1 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 指定为文件或文件夹的完整路径,该路径应采用 hdfs:///path_to_file 格式的统一资源定位符 (URL)。有关详细信息,请参阅处理远程数据

folders2labels 会搜索所有文件格式。若要指定要扫描的自定义文件扩展名列表,请使用 FileExtensions 参量。

示例: 'whale.mat'

示例: '../dir/data/signal.mat'

示例: "../dir/data/"

示例: {'dataFiles/Files_1/' 'dataFiles/Files_2/'}

示例: ["dataFiles/Files_1/" "dataFiles/Files_2/"]

数据类型: char | string | cell

数据存储库,指定为数据存储、matlab.io.datastore.FileSet 对象或 matlab.io.datastore.BlockedFileSet 对象。

  • 如果 ds 是一个数据存储,它必须包含一个 Files 属性,标签名称将从中解析出来。

  • 如果 ds 是一个 matlab.io.datastore.FileSet 对象,则 folders2labels 会从 dsFileInfo 属性中列出的文件名中获取标签名称。

  • 如果 ds 是一个 matlab.io.datastore.BlockedFileSet 对象,则 folders2labels 会从 dsBlockInfo 属性中列出的文件名中获取标签名称。

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: folders2labels('C:\dir\signaldata','FileExtensions','.csv') 指定了一个本地路径,并在扫描标签时仅包含 CSV 文件。

子文件夹包含标志,指定为 truefalse。指定 true 以包含每个文件夹内的所有文件和子文件夹,或指定 false 以仅包含每个文件夹内的文件。

示例: 'IncludeSubfolders',true

数据类型: logical | double

信号文件扩展名,指定为字符串标量、字符串数组、字符向量或字符向量元胞数组。

示例: 'FileExtensions','.csv'

数据类型: string | char | cell

输出参量

全部折叠

标签列表,以分类向量的形式返回。

文件列表,以字符串向量的形式返回。i 的第 lbls 个元素对应于 files 中第 i 个文件的标签。

版本历史记录

在 R2021a 中推出

另请参阅

(Signal Processing Toolbox) | (Signal Processing Toolbox) | (Signal Processing Toolbox) | (Signal Processing Toolbox) | (Signal Processing Toolbox)