exponenta event banner

splitEachLabel

Разделение хранилища данных в соответствии с указанными пропорциями метки

Описание

пример

[ADS1,ADS2] = splitEachLabel(ADS,p) разделяет аудиофайлы в ADS в два новых хранилища данных, ADS1 и ADS2. Новое хранилище данных ADS1 содержит первый p файлы из каждой метки, и ADS2 содержит оставшиеся файлы из каждой метки. p может быть либо числом от 0 до 1, исключающим, указывающим процент файлов от каждой метки для назначения ADS1, или целое число, указывающее абсолютное количество файлов из каждой метки для назначения ADS1.

пример

[ADS1,...,ADSM] = splitEachLabel(ADS,p1,...,pN) разбивает хранилище данных на N+1 новые хранилища данных. Новое хранилище данных ADS1 содержит первый p1 файлы из каждой метки, следующее новое хранилище данных ADS2 содержит следующий p2 файлы и так далее. Если p1,…,pN представляют количество файлов, то их сумма должна быть не больше количества файлов в наименьшей метке в исходном хранилище данных, ADS.

пример

___ = splitEachLabel(___,'randomized') случайным образом назначает определенную долю файлов из каждой метки новым хранилищам данных.

пример

___ = splitEachLabel(___,Name,Value) задает свойства новых хранилищ данных с использованием одного или нескольких аргументов пары имя-значение. Например, можно указать метки для разделения 'Include','labelname'.

Примеры

свернуть все

Укажите путь к файлу для образцов звука, включенных в Audio Toolbox™. Создайте хранилище аудиоданных, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','audio','samples');
ADS = audioDatastore(folder,'FileExtensions','.wav');

Добавить метку A к первой половине файлов и метке B ко второй половине. Если имеется нечетное количество файлов, назначьте дополнительный файл меткой B. Звонить countEachLabel для подтверждения того, что половина файлов помечена A и половина файлов помечена B.

labels = [repmat({'A'},1,floor(numel(ADS.Files)/2)), ...
          repmat({'B'},1,ceil(numel(ADS.Files)/2))];
ADS.Labels = labels;

countEachLabel(ADS)
ans=2×2 table
    Label    Count
    _____    _____

      A       10  
      B       10  

Разделение ADS на два хранилища данных, ADS1 и ADS2, указывая, что каждое новое хранилище данных содержит пятьдесят процентов каждой метки и соответствующих файлов. Звонить countEachLabel для подтверждения того, что половина файлов помечена A и половина файлов помечены B для каждого из новых хранилищ данных.

[ADS1,ADS2] = splitEachLabel(ADS,0.5)
ADS1 = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav'
                               ... and 7 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 7 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS2 = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Engine-16-44p1-stereo-20sec.wav';
                              ' .../build/matlab/toolbox/audio/samples/FemaleSpeech-16-8-mono-3secs.wav';
                              ' .../BR2021ad/build/matlab/toolbox/audio/samples/Heli_16ch_ACN_SN3D.wav'
                               ... and 7 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 7 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS1count = countEachLabel(ADS1)
ADS1count=2×2 table
    Label    Count
    _____    _____

      A        5  
      B        5  

ADS2count = countEachLabel(ADS2)
ADS2count=2×2 table
    Label    Count
    _____    _____

      A        5  
      B        5  

Укажите путь к файлу для образцов звука, включенных в Audio Toolbox™. Создайте хранилище аудиоданных, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','audio','samples');
ADS = audioDatastore(folder,'FileExtensions','.wav');

Добавить метку A к первой половине файлов и метке B ко второй половине. Если имеется нечетное количество файлов, назначьте дополнительный файл меткой B. Звонить countEachLabel для подтверждения того, что половина файлов помечена A и половина файлов помечена B.

labels = [repmat({'A'},1,floor(numel(ADS.Files)/2)), ...
          repmat({'B'},1,ceil(numel(ADS.Files)/2))];
ADS.Labels = labels;

countEachLabel(ADS)
ans=2×2 table
    Label    Count
    _____    _____

      A       10  
      B       10  

Разделение ADS на два хранилища данных, ADS1 и ADS2. Укажите, что ADS1 содержит четыре метки и соответствующий файл. ADS2 содержит оставшиеся метки и соответствующие файлы. Звонить countEachLabel подтвердить, что ADS1 содержит четыре файла с меткой A и четыре файла с меткой B, и что ADS2 содержит оставшиеся метки.

[ADS1,ADS2] = splitEachLabel(ADS,4)
ADS1 = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav'
                               ... and 5 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 5 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS2 = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Counting-16-44p1-mono-15secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/Engine-16-44p1-stereo-20sec.wav';
                              ' .../build/matlab/toolbox/audio/samples/FemaleSpeech-16-8-mono-3secs.wav'
                               ... and 9 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 9 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS1count = countEachLabel(ADS1)
ADS1count=2×2 table
    Label    Count
    _____    _____

      A        4  
      B        4  

ADS2count = countEachLabel(ADS2)
ADS2count=2×2 table
    Label    Count
    _____    _____

      A        6  
      B        6  

Укажите путь к файлу для образцов звука, включенных в Audio Toolbox™. Создайте хранилище аудиоданных, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','audio','samples');
ADS = audioDatastore(folder,'FileExtensions','.wav');

Добавить метку A к первой половине файлов и метке B ко второй половине. Если имеется нечетное количество файлов, назначьте дополнительный файл меткой B. Звонить countEachLabel для подтверждения того, что половина файлов помечена A и половина файлов помечена B.

labels = [repmat({'A'},1,floor(numel(ADS.Files)/2)), ...
          repmat({'B'},1,ceil(numel(ADS.Files)/2))];
ADS.Labels = labels;

countEachLabel(ADS)
ans=2×2 table
    Label    Count
    _____    _____

      A       10  
      B       10  

Разделение ADS в три новых хранилища данных, ADS60, ADS10, и ADS30. Первое хранилище данных, ADS60, содержит первые 60% файлов с A и первые 60% файлов с B этикетка. ADS10 содержит следующие 10% файлов из каждой метки. ADS30 содержит оставшиеся 30% файлов с каждой метки. Если процент, примененный к метке, не приводит к целому числу файлов, splitEachLabel округляется до ближайшего целого числа.

[ADS60,ADS10,ADS30] = splitEachLabel(ADS,0.6,0.1)
ADS60 = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav'
                               ... and 9 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 9 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS10 = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/FemaleSpeech-16-8-mono-3secs.wav';
                              ' .../matlab/toolbox/audio/samples/TrainWhistle-16-44p1-mono-9secs.wav'
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'B'}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS30 = 
  audioDatastore with properties:

                       Files: {
                              ' .../BR2021ad/build/matlab/toolbox/audio/samples/Heli_16ch_ACN_SN3D.wav';
                              ' .../matlab/toolbox/audio/samples/JetAirplane-16-11p025-mono-16secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/Laughter-16-8-mono-4secs.wav'
                               ... and 3 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 3 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Звонить countEachLabel для подтверждения правильного распределения меток для каждого хранилища данных.

countEachLabel(ADS60)
ans=2×2 table
    Label    Count
    _____    _____

      A        6  
      B        6  

countEachLabel(ADS10)
ans=2×2 table
    Label    Count
    _____    _____

      A        1  
      B        1  

countEachLabel(ADS30)
ans=2×2 table
    Label    Count
    _____    _____

      A        3  
      B        3  

Укажите путь к файлу для образцов звука, включенных в Audio Toolbox™. Создайте хранилище аудиоданных, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','audio','samples');
ADS = audioDatastore(folder,'FileExtensions','.wav');

Добавить метку A к первой половине файлов и метке B ко второй половине. Если имеется нечетное количество файлов, назначьте дополнительный файл меткой B. Звонить countEachLabel для подтверждения того, что половина файлов помечена A и половина файлов помечена B.

labels = [repmat({'A'},1,floor(numel(ADS.Files)/2)), ...
          repmat({'B'},1,ceil(numel(ADS.Files)/2))];
ADS.Labels = labels;

countEachLabel(ADS)
ans=2×2 table
    Label    Count
    _____    _____

      A       10  
      B       10  

Разделение ADS в три новых хранилища данных, ADS1, ADS2, и ADS3. Первое хранилище данных, ADS1, содержит первый файл с A и первый файл с помощью B этикетка. ADS2 содержит следующий файл из каждой метки. ADS3 содержит оставшиеся файлы из каждой метки. Если процент, примененный к метке, не приводит к целому числу файлов, splitEachLabel округляется до ближайшего целого числа.

[ADS1,ADS2,ADS3] = splitEachLabel(ADS,1,1)
ADS1 = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/MainStreetOne-16-16-mono-12secs.wav'
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'B'}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS2 = 
  audioDatastore with properties:

                       Files: {
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/NoisySpeech-16-22p5-mono-5secs.wav'
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'B'}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS3 = 
  audioDatastore with properties:

                       Files: {
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/Click-16-44p1-mono-0.2secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/Counting-16-44p1-mono-15secs.wav'
                               ... and 13 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 13 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Звонить countEachLabel для подтверждения правильного распределения меток для каждого хранилища данных.

countEachLabel(ADS1)
ans=2×2 table
    Label    Count
    _____    _____

      A        1  
      B        1  

countEachLabel(ADS2)
ans=2×2 table
    Label    Count
    _____    _____

      A        1  
      B        1  

countEachLabel(ADS3)
ans=2×2 table
    Label    Count
    _____    _____

      A        8  
      B        8  

Укажите путь к файлу для образцов звука, включенных в Audio Toolbox™. Создайте хранилище аудиоданных, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','audio','samples');
ADS = audioDatastore(folder,'FileExtensions','.wav')
ADS = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav'
                               ... and 17 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
                      Labels: {}
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Добавить метку A к первой половине файлов и метке B ко второй половине. Если имеется нечетное количество файлов, назначьте дополнительный файл меткой B. Звонить countEachLabel для подтверждения того, что половина файлов помечена A и половина файлов помечена B.

labels = [repmat({'A'},1,floor(numel(ADS.Files)/2)), ...
          repmat({'B'},1,ceil(numel(ADS.Files)/2))];
ADS.Labels = labels;

countEachLabel(ADS)
ans=2×2 table
    Label    Count
    _____    _____

      A       10  
      B       10  

Создание двух новых хранилищ данных из файлов в ADS путем случайного рисования из каждой метки. Первое хранилище данных, ADS1, содержит два случайных файла с A метка и два случайных файла с B этикетка. ADS2 содержит оставшиеся файлы из каждой метки.

[ADS1,ADS2] = splitEachLabel(ADS,2,'randomized')
ADS1 = 
  audioDatastore with properties:

                       Files: {
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/Engine-16-44p1-stereo-20sec.wav';
                              ' .../matlab/toolbox/audio/samples/MainStreetOne-16-16-mono-12secs.wav'
                               ... and 1 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'B' ... and 1 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS2 = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/Click-16-44p1-mono-0.2secs.wav'
                               ... and 13 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 13 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Укажите путь к файлу для образцов звука, включенных в Audio Toolbox™. Создайте хранилище аудиоданных, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','audio','samples');
ADS = audioDatastore(folder,'FileExtensions','.wav')
ADS = 

  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav'
                               ... and 17 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
                      Labels: {}
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Добавить метку A к первой половине файлов и метке B ко второй половине. Если имеется нечетное количество файлов, назначьте дополнительный файл меткой B. Звонить countEachLabel для подтверждения того, что половина файлов помечена A и половина файлов помечена B.

labels = [repmat({'A'},1,floor(numel(ADS.Files)/2)), ...
          repmat({'B'},1,ceil(numel(ADS.Files)/2))];
ADS.Labels = labels;

countEachLabel(ADS)
ans =

  2x2 table

    Label    Count
    _____    _____

      A       10  
      B       10  

Создание двух новых хранилищ данных из файлов в ADS, включая только файлы с A этикетка. ADS1 содержит первые 70% файлов с A этикетка, и ADS2 содержит оставшиеся 30% меток с A этикетка.

[ADS1,ADS2] = splitEachLabel(ADS,0.7,'Include','A')
ADS1 = 

  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav'
                               ... and 4 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 4 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"


ADS2 = 

  audioDatastore with properties:

                       Files: {
                              ' .../BR2021ad/build/matlab/toolbox/audio/samples/Heli_16ch_ACN_SN3D.wav';
                              ' .../matlab/toolbox/audio/samples/JetAirplane-16-11p025-mono-16secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/Laughter-16-8-mono-4secs.wav'
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A'}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Эквивалентно, можно разделить только A путем исключения B этикетка.

[ADS1,ADS2] = splitEachLabel(ADS,0.7,'Exclude','B')
ADS1 = 

  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav'
                               ... and 4 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 4 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"


ADS2 = 

  audioDatastore with properties:

                       Files: {
                              ' .../BR2021ad/build/matlab/toolbox/audio/samples/Heli_16ch_ACN_SN3D.wav';
                              ' .../matlab/toolbox/audio/samples/JetAirplane-16-11p025-mono-16secs.wav';
                              ' .../build/matlab/toolbox/audio/samples/Laughter-16-8-mono-4secs.wav'
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A'}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Укажите путь к файлу для образцов звука, включенных в Audio Toolbox™. Создайте хранилище аудиоданных, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','audio','samples');
ADS = audioDatastore(folder)
ADS = 
  audioDatastore with properties:

                       Files: {
                              ' .../build/matlab/toolbox/audio/samples/Ambiance-16-44p1-mono-12secs.wav';
                              ' .../matlab/toolbox/audio/samples/AudioArray-16-16-4channels-20secs.wav';
                              ' .../toolbox/audio/samples/ChurchImpulseResponse-16-44p1-mono-5secs.wav'
                               ... and 31 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples'
                              }
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
                      Labels: {}
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Создайте таблицу меток с двумя переменными:

  • containsMusic - Может быть либо true или false.

  • instrument -- Может быть Guitar, Drums, или Unknown.

containsGuitar = contains(ADS.Files,'guitar','IgnoreCase',true);
containsDrums = contains(ADS.Files,'drum','IgnoreCase',true);
containsMusic = or(containsGuitar,containsDrums);

instrument = strings(size(ADS.Files));
instrument(:) = "Unknown";
instrument(containsGuitar) = "Guitar";
instrument(containsDrums) = "Drums";

Назначьте таблицу меток Labels свойство хранилища аудиоданных для связывания строк таблицы меток со строками хранилища данных. Звонить countEachLabel для определения случаев containsMusic и instrument.

labels = table(containsMusic,instrument);
ADS.Labels = labels;

containsMusicCount = countEachLabel(ADS,'TableVariable','containsMusic')
containsMusicCount=2×2 table
    containsMusic    Count
    _____________    _____

        false         27  
        true           7  

instrumentCount = countEachLabel(ADS,'TableVariable','instrument')
instrumentCount=3×2 table
    instrument    Count
    __________    _____

     Drums          4  
     Guitar         3  
     Unknown       27  

Разделение хранилища данных ADS на два, в зависимости от того, содержит ли аудиофайл музыку. ADS1 содержит 70% аудиофайлов, содержащих музыку, и ADS2 содержит вызов восстановления. countEachLabel чтобы проверить, что отношение containsMusic == true кому containsMusic == false сохраняется для новых хранилищ данных в пределах округления.

[ADS1,ADS2] = splitEachLabel(ADS,0.7,'TableVariable','containsMusic');
ADS1_containsMusicCount = countEachLabel(ADS1,'TableVariable','containsMusic')
ADS1_containsMusicCount=2×2 table
    containsMusic    Count
    _____________    _____

        false         19  
        true           5  

ADS2_containsMusicCount = countEachLabel(ADS2,'TableVariable','containsMusic')
ADS2_containsMusicCount=2×2 table
    containsMusic    Count
    _____________    _____

        false          8  
        true           2  

Разделение хранилища данных ADS на два, на основе типа инструмента, присутствующего в аудиофайле. ADS3 содержит 25% аудиофайлов, имеющих метку инструмента, и ADS4 содержит вызов восстановления. countEachLabel чтобы проверить, что отношение instrument == "drums" кому instrument == "guitar" сохраняется для новых хранилищ данных в пределах округления.

[ADS3,ADS4] = splitEachLabel(ADS,0.25,'TableVariable','instrument');
ADS3_instrumentCount = countEachLabel(ADS3,'TableVariable','instrument')
ADS3_instrumentCount=3×2 table
    instrument    Count
    __________    _____

     Drums          1  
     Guitar         1  
     Unknown        7  

ADS4_instrumentCount = countEachLabel(ADS4,'TableVariable','instrument')
ADS4_instrumentCount=3×2 table
    instrument    Count
    __________    _____

     Drums          3  
     Guitar         2  
     Unknown       20  

Укажите путь к файлу для образцов звука, включенных в Audio Toolbox™. Создайте хранилище аудиоданных, указывающее на указанную папку.

folder = fullfile(matlabroot,'toolbox','audio','samples');
ADS = audioDatastore(folder);

Создайте таблицу меток с двумя переменными:

  • containsMusic - Может быть либо true или false.

  • instrument - Может быть Guitar, Drums, или Unknown.

containsGuitar = contains(ADS.Files,'guitar','IgnoreCase',true);
containsDrums = contains(ADS.Files,'drum','IgnoreCase',true);
containsMusic = or(containsGuitar,containsDrums);

instrument = strings(size(ADS.Files));
instrument(:) = "Unknown";
instrument(containsGuitar) = "Guitar";
instrument(containsDrums) = "Drums";

Назначьте таблицу меток Labels свойство хранилища аудиоданных для связывания строк таблицы меток со строками хранилища данных. Звонить countEachLabel для определения случаев containsMusic и instrument.

labels = table(containsMusic,instrument);
ADS.Labels = labels;

containsMusicCount = countEachLabel(ADS,'TableVariable','containsMusic')
containsMusicCount=2×2 table
    containsMusic    Count
    _____________    _____

        false         27  
        true           7  

instrumentCount = countEachLabel(ADS,'TableVariable','instrument');

Разделение хранилища данных ADS на два, в зависимости от того, содержит ли аудиофайл музыку. ADS1 содержит 5 меток под переменной таблицы containsMusic, и ADS2 содержит вызов восстановления. countEachLabel для проверки.

[ADS1,ADS2] = splitEachLabel(ADS,5,'TableVariable','containsMusic');
ADS1_containsMusicCount = countEachLabel(ADS1,'TableVariable','containsMusic')
ADS1_containsMusicCount=2×2 table
    containsMusic    Count
    _____________    _____

        false          5  
        true           5  

ADS2_containsMusicCount = countEachLabel(ADS2,'TableVariable','containsMusic')
ADS2_containsMusicCount=2×2 table
    containsMusic    Count
    _____________    _____

        false         22  
        true           2  

Разделение хранилища данных ADS на два, на основе типа инструмента, присутствующего в аудиофайле. ADS3 содержит 2 метки под переменной таблицы instrument, и ADS4 содержит вызов восстановления. countEachLabel для проверки.

[ADS3,ADS4] = splitEachLabel(ADS,2,'TableVariable','instrument');
ADS3_instrumentCount = countEachLabel(ADS3,'TableVariable','instrument')
ADS3_instrumentCount=3×2 table
    instrument    Count
    __________    _____

     Drums          2  
     Guitar         2  
     Unknown        2  

ADS4_instrumentCount = countEachLabel(ADS4,'TableVariable','instrument')
ADS4_instrumentCount=3×2 table
    instrument    Count
    __________    _____

     Drums          2  
     Guitar         1  
     Unknown       25  

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

свернуть все

Входное хранилище аудиоданных, указанное как audioDatastore объект.

Доля разделяемых файлов, заданная как скаляр в интервале (0,1) или как целочисленный скаляр.

Если p находится в интервале (0,1), он представляет процент файлов от каждой метки для назначения ADS1. Если p представляет процент, и это не приводит к целому числу, то splitEachLabel округляется до ближайшего целого числа.

Если p является целым числом, оно представляет абсолютное количество файлов из каждой метки для назначения ADS1. Когда p представляет количество файлов, должно быть не менее p файлы, связанные с каждой меткой.

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

Список пропорций, указанных как скаляры в интервале (0,1) или целочисленные скаляры.

Если пропорции находятся в интервале (0,1), они представляют процент файлов из каждой метки для назначения хранилищам выходных данных. Когда пропорции представляют проценты, их сумма должна быть не более 1.

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

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

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

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

Пример: [ADS1,ADS2] = splitEachLabel(ADS,0.5,'Exclude','noisy')

Метки для включения, указанные как разделенная запятыми пара, состоящая из 'Include' и вектор, массив ячеек или строковый массив имен меток с тем же типом, что и Labels собственность. Каждое имя должно соответствовать одной из меток в Labels свойства хранилища данных.

Этот параметр нельзя использовать с 'Exclude' вариант.

Метки для исключения, указанные как пара, разделенная запятыми, состоящая из 'Exclude' и вектор, массив ячеек или строковый массив имен меток с тем же типом, что и Labels собственность. Каждое имя должно соответствовать одной из меток в Labels свойства хранилища данных.

Этот параметр нельзя использовать с 'Include' вариант.

Имя переменной таблицы, указанной как разделенная запятыми пара, состоящая из 'TableVariable' и символьный вектор или строку. Когда Labels свойство хранилища аудиоданных ADS является таблицей, необходимо использовать 'TableVariable' для указания метки, используемой для разделения.

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

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

свернуть все

Выходные хранилища аудиоданных, возвращенные как audioDatastore объекты. ADS1 содержит указанную долю файлов из каждой метки в ADS, и ADS2 содержит оставшиеся файлы.

Список выходных хранилищ аудиоданных, возвращенных как audioDatastore объекты. Количество элементов в списке больше количества перечисленных пропорций. Каждое из новых хранилищ данных содержит долю каждой метки в ADS определяется p1,…,pN. Все оставшиеся файлы назначаются хранилищу данных Mth.

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