setLabelValue

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

Синтаксис

setLabelValue(lss,midx,lblname,val)
setLabelValue(lss,midx,lblname,limits,val)
setLabelValue(lss,midx,lblname,locs,val)
setLabelValue(___,'LabelRowIndex',ridx)
setLabelValue(___,'SublabelRowIndex',sridx)

Описание

пример

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

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

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

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

свернуть все

Маркированный набор сигнала, заданный как объект labeledSignalSet.

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

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

Маркируйте имя, заданное как вектор символов, или представьте скаляр в виде строки.

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

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

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

При предназначении для подметки ROI или метки точки, необходимо также задать '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 должен быть массивом ячеек таблиц или расписаний.

Пределы области, заданные как матрица 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