Main Content

folders2labels

フォルダー名からのラベル リストの取得

R2021a 以降

説明

この関数は、機械学習または深層学習の分類問題の作業において、ラベル付きデータがその対応するラベル名のフォルダーに保存されている場合に使用します。

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(___) は、さらにファイルのリストを返します。lblsi 番目の要素は、files 内の i 番目のファイルのラベルに対応します。

すべて折りたたむ

Files_1Files_2Files_3 の 3 つのサブフォルダーを含む現在のフォルダーに、Files というフォルダーを作成します。各サブフォルダーにランダムな数のファイルを追加します。各ファイルには、ランダム サイズのランダム信号が含まれています。

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 = 9x1 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 = 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

入力引数

すべて折りたたむ

ラベルをスキャンするファイルまたはフォルダー。ローカルまたはリモートのファイルまたはフォルダーの場所を含む文字ベクトル、文字ベクトルの cell 配列、string スカラー、または string 配列として指定します。

  • ローカルのファイルまたはフォルダー — loc をファイルまたはフォルダーへのローカル パスとして指定します。ファイルが現在のフォルダーに存在しない場合、ローカル パスは絶対パスまたは相対パスを指定しなければなりません。指定されたフォルダーのサブフォルダー内のファイルは、既定で含まれます。ローカル パスを指定する際、ワイルドカード文字 (*) を使用できます。この文字は、すべての一致するファイル、または一致するフォルダー内のすべてのファイルがファイル検索に含まれることを指定します。

  • 国際化リソース識別子 (IRI) を使用して指定したリモートの場所。

  • リモートのファイルまたはフォルダー — ファイルまたはフォルダーの絶対パスとなる lochdfs:///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 プロパティが含まれていなければなりません。

  • dsmatlab.io.datastore.FileSet オブジェクトの場合、folders2labels は、dsFileInfo プロパティにリストされているファイル名からラベル名を取得します。

  • dsmatlab.io.datastore.BlockedFileSet オブジェクトの場合、folders2labels は、dsBlockInfo プロパティにリストされているファイル名からラベル名を取得します。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: folders2labels('C:\dir\signaldata','FileExtensions','.csv') は、ローカル パスを指定し、ラベルのスキャンに CSV ファイルのみを含めます。

サブフォルダー包含フラグ。true または false として指定します。すべてのファイルとサブフォルダーを各フォルダー内に含める場合は true を、ファイルのみを各フォルダー内に含める場合は false を指定します。

例: 'IncludeSubfolders',true

データ型: logical | double

信号ファイル拡張子。string スカラー、string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。

例: 'FileExtensions','.csv'

データ型: string | char | cell

出力引数

すべて折りたたむ

ラベルのリスト。categorical ベクトルとして返されます。

ファイルのリスト。string ベクトルとして返されます。lblsi 番目の要素は、files 内の i 番目のファイルのラベルに対応します。

バージョン履歴

R2021a で導入