exponenta event banner

setLabelValue

Установка значения метки в наборе маркированных сигналов

Описание

пример

setLabelValue(lss,midx,lblname,val) устанавливает метку атрибута lblname оценить val, для элемента маркированного набора сигналов lss указано в midx. Опустить val если lblname имеет значение по умолчанию и требуется установить для метки значение по умолчанию.

setLabelValue(lss,midx,lblname,limits,val) добавляет области, разделенные limits в метку окупаемости инвестиций с именем lblname. Количество строк limits указывает количество добавленных областей.

setLabelValue(lss,midx,lblname,locs,val) добавляет точки в метку точки с именем lblname. locs определяет количество добавленных точек и их расположение.

setLabelValue(___,'LabelRowIndex',ridx) задает индекс строки, ridx, ROI или метки точки. Указанное значение заменяет текущее значение этой строки. Если этот аргумент опущен, функция добавляет ROI или значения точек к любым существующим значениям меток.

setLabelValue(___,'SublabelRowIndex',sridx) задает индекс строки, sridx, ROI или точечной субкниги. Указанное значение заменяет текущее значение этой строки подмаркировки.

Примеры

свернуть все

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

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.

Добавьте новую метку в набор сигналов, соответствующую максимальному значению каждого элемента.

theMax = signalLabelDefinition('Maximum', ...
    'LabelDataType','numeric', ...
    'Description','Maximum value of the signal');
addLabelDefinitions(lss,theMax)

Для каждого меченого сигнала установите значение новой метки, равное максимуму сигнала. Постройте график сигналов и их максимумов.

fs = lss.SampleRate;
for k = 1:lss.NumMembers
    sg = getSignal(lss,k);
    [mx,ix] = max(sg);
    
    setLabelValue(lss,k,'Maximum',mx)
    
    subplot(2,1,k)
    plot((0:length(sg)-1)/fs,sg,ix/fs,mx,'*')
end

Figure contains 2 axes. Axes 1 contains 2 objects of type line. Axes 2 contains 2 objects of type line.

Отображение имен и значений меток в наборе.

lbldefs = getLabelValues(lss)
lbldefs=2×4 table
                 WhaleType    MoanRegions    TrillRegions     Maximum  
                 _________    ___________    ____________    __________

    Member{1}      blue       {3x2 table}    {1x3 table}     {[0.2850]}
    Member{2}      blue       {3x2 table}    {1x3 table}     {[0.3791]}

Решите, что максимум сигнала лучше представлять как метку точки, чем как атрибут. Удалите числовое определение и переопределите максимальное значение.

removeLabelDefinition(lss,'Maximum')
theMax = signalLabelDefinition('Maximum', ...
    'LabelType','point','LabelDataType','numeric', ...
    'Description','Maximum value of the signal');
addLabelDefinitions(lss,theMax)

Для каждого меченого сигнала установите значение новой метки, равное максимуму сигнала.

for k = 1:lss.NumMembers
    sg = getSignal(lss,k);
    [mx,ix] = max(sg);
    setLabelValue(lss,k,'Maximum',ix/fs,mx)
end

Постройте график сигналов и их максимумов.

for k = 1:lss.NumMembers
    subplot(2,1,k)
    sg = getSignal(lss,k);
    peaks = getLabelValues(lss,k,'Maximum');
    plot((0:length(sg)-1)/fs,sg, ...
        peaks.Location,cell2mat(peaks.Value),'*')
end

Figure contains 2 axes. Axes 1 contains 2 objects of type line. Axes 2 contains 2 objects of type line.

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

свернуть все

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

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

Номер строки элемента, указанный как положительное целое число. midx определяет номер строки элемента в том виде, в каком он отображается в таблице Labels набора маркированных сигналов.

Имя метки, указанное как вектор символа или скаляр строки.

Имя метки или субкниги. Чтобы задать метку, используйте вектор символов или скаляр строки. Чтобы указать субблицу, используйте двухэлементный массив ячеек из символьных векторов или двухэлементный строковый массив:

  • Первый элемент является именем родительской метки.

  • Второй элемент является именем субкниги.

При нацеливании на субметку ROI или метку точки необходимо также указать 'LabelRowIndex' родительской метки, метку которой необходимо задать. Строка родительского объекта должна уже существовать, прежде чем можно будет задать для нее значение подмаркировки.

Пример: signalLabelDefinition("Asleep",'LabelType','roi') указывает метку имени "Asleep" для области сигнала, в которой пациент спит во время клинического испытания.

Пример: {'Asleep' 'REM'} или ["Asleep" "REM"] задает область сигнала, в которой пациент подвергается REM-сну.

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

  • При указании locs, то val должно иметь то же количество элементов, что и locs.

  • При указании limits, то val должно иметь количество элементов, равное количеству строк в limits.

    • Если limits имеет более одной строки, и lblname имеет тип 'numeric' или 'logical', то val должен быть вектором или массивом ячеек.

    • Если limits имеет более одной строки, и lblname имеет тип 'string' или 'categorical', то val должен быть строковым массивом или массивом ячеек символьных векторов.

    • Если limits имеет более одной строки, и lblname имеет тип 'table' или 'timetable', то val должен быть массивом ячеек таблиц или расписаний.

Назначение значений нескалярной метки

Чтобы назначить нескалярные значения меток нескольким точкам или областям, представляющим интерес, необходимо использовать массивы ячеек. Например, учитывая набор маркированных сигналов

lss = labeledSignalSet(randn(10,1), [...
    signalLabelDefinition('pl','LabelType','point', ...
                               'LabelDataType','numeric') ...
    signalLabelDefinition('rl','LabelType','ROI', ...
                               'LabelDataType','numeric')]);
команды
setLabelValue(lss,1,'pl',5,{[3 4]'})
setLabelValue(lss,1,'rl',[2 3; 8 9],{[2 1]' [6 7]})
точка метки 5 с вектором столбца [3 4]', регион, ограниченный 2 и 3 с вектором столбца [2 1]'и регион, ограниченный 8 и 9 с вектором строки [6 7].

Границы области, заданные как матрица из двух столбцов.

  • Если lss не имеет временной информации, то limits определяет минимальный и максимальный индексы, по которым определяются области.

  • Если lss имеет информацию о времени, то limits определяет минимальный и максимальный моменты времени, в течение которых определяются области.

limits должен иметь тип данных, указанный свойством ROILimitsDataType определения метки для lblname.

Пример: seconds([0:3;1:4]')

Пример: [0:3;1:4]'

Расположение точек, заданное как вектор.

  • Если lss не имеет временной информации, то locs определяет индексы, соответствующие местоположениям точек.

  • Если lss имеет информацию о времени, то locs определяет моменты, соответствующие местоположениям точек.

locs должен иметь тип данных, указанный свойством lblname.

Индекс строки метки, указанный как положительное целое число. Этот аргумент применяется только для меток ROI и точек.

Индекс строки подмаркировки, заданный как положительное целое число. Этот аргумент применяется только в том случае, если пара меток и суббуквенных была указана в lblname и подмаркировка имеет тип ROI или точка.

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