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, информация только для чтения или метки точки. Заданное значение заменяет текущее значение этой строки. Если вы опускаете этот аргумент, функция добавляет информация только для чтения или значения точек к любым существующим значениям меток.

setLabelValue(___,'SublabelRowIndex',sridx) задает индекс строки, sridx, информация только для чтения или подметки точки. Заданное значение заменяет текущее значение этой строки подметки.

Примеры

свернуть все

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

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 маркированного набора сигналов.

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

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

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

  • Вторым элементом является имя подметки.

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

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

Пример: {'Asleep' 'REM'} или ["Asleep" "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 должен быть массивом ячеек из таблиц или timetables.

Присвоение нескалярных значений меток

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

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 должен иметь тип данных, заданный свойством PointLocationsDataType определения метки для lblname.

Пометьте индекс строки в виде положительного целого числа. Этот аргумент применяется только к информация только для чтения и меткам точек.

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

Введенный в R2018b