splitEachLabel

Datastore разделений согласно заданным пропорциям метки

Описание

пример

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

пример

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

пример

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

пример

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

Примеры

свернуть все

Задайте путь к файлу к аудиосэмплам, включенным с Audio Toolbox™. Создайте аудио datastore, который указывает на заданную папку.

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, определение, что каждый новый datastore содержит пятьдесят процентов каждой метки и соответствующих файлов. Вызовите 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/BR2021bd/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';
                              ' .../BR2021bd/build/matlab/toolbox/audio/samples/Heli_16ch_ACN_SN3D.wav'
                               ... and 7 more
                              }
                     Folders: {
                              '/mathworks/devel/bat/BR2021bd/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™. Создайте аудио datastore, который указывает на заданную папку.

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/BR2021bd/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/BR2021bd/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™. Создайте аудио datastore, который указывает на заданную папку.

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. Первый datastore, 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/BR2021bd/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/BR2021bd/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'B'}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

ADS30 = 
  audioDatastore with properties:

                       Files: {
                              ' .../BR2021bd/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/BR2021bd/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 3 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Вызовите countEachLabel подтвердить правильное распределение меток для каждого datastore.

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™. Создайте аудио datastore, который указывает на заданную папку.

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. Первый datastore, 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/BR2021bd/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/BR2021bd/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/BR2021bd/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A' ... and 13 more}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Вызовите countEachLabel подтвердить правильное распределение меток для каждого datastore.

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™. Создайте аудио datastore, который указывает на заданную папку.

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/BR2021bd/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 путем случайного рисования от каждой метки. Первый datastore, 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/BR2021bd/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/BR2021bd/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™. Создайте аудио datastore, который указывает на заданную папку.

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/BR2021bd/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/BR2021bd/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: {
                              ' .../BR2021bd/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/BR2021bd/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/BR2021bd/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: {
                              ' .../BR2021bd/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/BR2021bd/build/matlab/toolbox/audio/samples'
                              }
                      Labels: {'A'; 'A'; 'A'}
    AlternateFileSystemRoots: {}
              OutputDataType: 'double'
      SupportedOutputFormats: ["wav"    "flac"    "ogg"    "mp4"    "m4a"]
         DefaultOutputFormat: "wav"

Задайте путь к файлу к аудиосэмплам, включенным с Audio Toolbox™. Создайте аудио datastore, который указывает на заданную папку.

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/BR2021bd/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 свойство аудио datastore сопоставить строки таблицы метки со строками datastore. Вызовите 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  

Разделите datastore 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  

Разделите datastore 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™. Создайте аудио datastore, который указывает на заданную папку.

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 свойство аудио datastore сопоставить строки таблицы метки со строками datastore. Вызовите 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');

Разделите datastore 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  

Разделите datastore 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  

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

свернуть все

Введите аудио datastore в виде 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

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

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

свернуть все

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

Список выходных хранилищ данных аудио, возвращенных как audioDatastore объекты. Число элементов в списке - еще один что количество перечисленных пропорций. Каждое из новых хранилищ данных содержит пропорцию каждой метки в ADS заданный p1,…,pN. Любые перенесенные файлы присвоены M th datastore.

Введенный в R2018b