setLabelValue

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

Описание

пример

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

setLabelValue(lss,midx,lblname,limits,val) добавляют области, разграниченные limits к метке ROI под названием 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 ('розетка')) задает набор 2D члена случайных сигналов, содержащих атрибут 'female'.

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

Пометьте имя в виде вектора символов или строкового скаляра.

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

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

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

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

Пример: signalLabelDefinition("Спящий", 'LabelType', 'король') задает метку имени "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 должен быть массив ячеек таблиц или расписаний.

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

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

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].

Область ограничивает в виде матрицы 2D столбца.

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

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

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

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

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

Укажите местоположения в виде вектора.

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

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

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

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

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

Введенный в R2018b