exponenta event banner

addMembers

Добавление элементов в набор маркированных сигналов

Описание

пример

addMembers(lss,src) добавляет элементы в набор маркированных сигналов lss из источника входных данных src.

addMembers(lss,src,tinfo) устанавливает информацию о времени для новых членов в tinfo.

addMembers(lss,src,tinfo,mnames) устанавливает имена новых участников в mnames. Длина mnames должно быть равно количеству новых членов.

Примеры

свернуть все

Загрузите маркированный набор сигналов, содержащий записи песен китов.

load whales
lss
lss = 
  labeledSignalSet with properties:

             Source: {2x1 cell}
         NumMembers: 2
    TimeInformation: "sampleRate"
         SampleRate: 4000
             Labels: [2x3 table]
        Description: "Characterize wave song regions"

 Use labelDefinitionsHierarchy to see a list of labels and sublabels.
 Use setLabelValue to add data to the set.

Извлеките второй элемент набора и постройте его график.

[song,tinfo] = getSignal(lss,2);

t = (0:length(song)-1)/tinfo.SampleRate;

plot(t,song)

Figure contains an axes. The axes contains an object of type line.

Удалите первую и последнюю секунды извлеченного сигнала.

song2 = song(t>1 & t<t(end)-1);
t2 = (0:length(song2)-1)/tinfo.SampleRate;

plot(t2,song2)

Figure contains an axes. The axes contains an object of type line.

Добавьте более короткий сигнал в качестве нового элемента маркированного набора.

addMembers(lss,song2)
lss
lss = 
  labeledSignalSet with properties:

             Source: {3x1 cell}
         NumMembers: 3
    TimeInformation: "sampleRate"
         SampleRate: 4000
             Labels: [3x3 table]
        Description: "Characterize wave song regions"

 Use labelDefinitionsHierarchy to see a list of labels and sublabels.
 Use setLabelValue to add data to the set.

Переверните более короткий сигнал вверх дном и добавьте его в качестве нового элемента маркированного набора. Укажите, что выборка нового элемента выполняется на частоте 1 кГц.

addMembers(lss,flipud(song2),1000)
lss.SampleRate
ans = 4×1

        4000
        4000
        4000
        1000

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

свернуть все

Набор маркированных сигналов, указанный как labeledSignalSet объект.

Пример: labeledSignalSet({randn(100,1) randn(10,1)},signalLabelDefinition('female')) задает двухкомпонентный набор случайных сигналов, содержащих атрибут 'female'.

Источник входных данных, указанный как матрица, массив ячеек, расписание, signalDatastore(Панель инструментов обработки сигналов) или audioDatastore (Звуковая панель инструментов). Конкретная форма src зависит от свойства Source lss.

  • Если Source является массивом ячеек матриц:

    • Определить src в качестве матрицы для добавления одного элемента в набор.

    • Определить src в виде массива ячеек матриц для добавления множества элементов в набор.

  • Если Source является массивом ячеек, содержащим массивы ячеек векторов:

    • Определить src в виде клеточного массива векторов для добавления одного элемента в набор.

    • Определить src как массив ячеек, содержащий массивы ячеек векторов для добавления множества элементов в набор.

  • Если источник является массивом ячеек расписаний:

    • Определить src в качестве расписания для добавления одного члена в набор.

    • Определить src как массив ячеек расписаний для добавления нескольких членов в набор.

  • Если Source является хранилищем данных, добавьте элементы путем установки src как другое хранилище данных, указывающее на новые файлы.

Пример: {randn(10,3),randn(17,9)} задает два элемента. Первый элемент содержит три сигнала из 10 выборок. Второй элемент содержит девять сигналов из 17 выборок.

Пример: {{randn(10,1)},{randn(17,1),randn(27,1)}} задает два элемента. Первый элемент содержит один 10-образный сигнал. Второй элемент содержит 17-образный сигнал и 27-образный сигнал.

Пример: {{timetable(seconds(1:10)',randn(10,3)),timetable(seconds(1:7)',randn(7,2))},{timetable(seconds(1:3)',randn(3,1))}} задает два элемента. Первый элемент содержит три сигнала с частотой 1 Гц в течение 10 секунд и два сигнала с частотой 1 Гц в течение 7 секунд. Второй элемент содержит один сигнал, дискретизированный с частотой 1 Гц в течение 3 секунд.

Пример: signalDatastore Объект, указывающий на файлы

Укажите путь к набору образцов звуковых сигналов, включенных в MAT-файлы с MATLAB ®. Каждый файл содержит переменную сигнала и частоту дискретизации. Перечислите имена файлов.

folder = fullfile(matlabroot,"toolbox","matlab","audiovideo");
lst = dir(append(folder,"/*.mat"));
nms = {lst(:).name}'
nms = 7x1 cell
    {'chirp.mat'   }
    {'gong.mat'    }
    {'handel.mat'  }
    {'laughter.mat'}
    {'mtlb.mat'    }
    {'splat.mat'   }
    {'train.mat'   }

Создайте хранилище данных сигнала, указывающее на указанную папку. Задайте имя переменной частоты выборки как Fs, что является общим для всех файлов. Создание подмножества хранилища данных, исключающего файл mtlb.mat, который отличается от других файлов тем, что переменная сигнала не вызывается y.

sds = signalDatastore(folder,"SampleRateVariableName","Fs");
sdss = subset(sds,~strcmp(nms,"mtlb.mat"));

Использовать хранилище данных подмножества в качестве источника для labeledSignalSet объект.

lss = labeledSignalSet(sdss)
lss = 
  labeledSignalSet with properties:

             Source: [1x1 signalDatastore]
         NumMembers: 6
    TimeInformation: "inherent"
             Labels: [6x0 table]
        Description: ""

 Use labelDefinitionsHierarchy to see a list of labels and sublabels.
 Use setLabelValue to add data to the set.

Информация о времени для новых элементов, заданная как скаляр, вектор, матрица, скаляр длительности или вектор длительности. Этот аргумент допустим, только если свойство TimeInformation имеет значение lss является 'sampleRate', 'sampleTime', или 'timeValues'.

Если в набор добавляется несколько элементов, то задается только одно значение tinfo устанавливает одинаковое значение для всех элементов. Если необходимо указать другое значение для каждого нового элемента, задайте tinfo чтобы иметь несколько значений.

Если источник не указан или если помеченный источник набора сигналов пуст, можно изменить свойство TimeInformation на 'sampleRate', 'sampleTime', или 'timeValues' сделать lss интерпретировать tinfo правильно.

Пример: addMembers(ks,{randn(10,5),randn(10,3)},seconds([1 2])) добавляет двух новых участников с разной информацией о времени в ks = labeledSignalSet(randn(10,3),'SampleTime',seconds(1)).

Пример: addMembers(ks,{randn(10,5),randn(10,3)},[1:10;2:2:20]') добавляет двух новых участников с разной информацией о времени в ks = labeledSignalSet(randn(10,3),'TimeValues',1:10).

Имена элементов, определяемые как вектор символов, скаляр строк, массив ячеек из векторов символов или строковый массив.

Пример: labeledSignalSet({randn(100,1) randn(10,1)},'MemberNames',{'llama' 'alpaca'}) задает набор случайных сигналов с двумя элементами, 'llama' и 'alpaca'.

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