Создайте определение метки сигнала
Используйте signalLabelDefinition
, чтобы создать определения метки сигнала для наборов данных. Метки могут соответствовать атрибутам, областям или интересным местам. Используйте вектор объектов signalLabelDefinition
создать labeledSignalSet
.
sld = signalLabelDefinition(name)
sld = signalLabelDefinition(name,Name,Value)
имя
Маркируйте имяМаркируйте имя, заданное как вектор символов, или представьте скаляр в виде строки.
Типы данных: char | string
Имя
Имя меткиИмя метки, заданной как вектор символов или скаляр строки.
Типы данных: char | string
LabelType
— Тип метки'attribute'
(значение по умолчанию) | 'roi'
| 'point'
Тип метки, заданной как одно из следующего:
'attribute'
— Задайте характеристики сигнала.
'roi'
— Задайте характеристики сигнала по видимым областям.
'point'
— Задайте характеристики сигнала по интересным местам.
Типы данных: char | string
LabelDataType
— Тип данных метки'logical'
(значение по умолчанию) | 'categorical'
| 'numeric'
| 'string'
| 'table'
| 'timetable'
Тип данных метки, заданной как 'logical'
, 'categorical'
, 'numeric'
, 'string'
, 'table'
или 'timetable'
. Используйте свойство Categories задать массив категорий, когда это свойство будет установлено в 'categorical'
.
Типы данных: char | string
Категории
Маркируйте названия категорииМаркируйте названия категории, заданные как массив строк или массив ячеек из символьных векторов. Массив должен иметь уникальные элементы. Это свойство применяется только, когда свойство LabelDataType установлено в 'categorical'
.
Пример: 'LabelDataType','categorical','Categories',["apple","orange"]
Типы данных: char | string
ROILimitsDataType
— Тип данных пределов ROI'double'
(значение по умолчанию) | 'duration'
Тип данных пределов ROI, заданных или как 'double'
или как 'duration'
. Это свойство применяется только, когда LabelType установлен в 'roi'
.
Типы данных: char | string
PointLocationsDataType
— Тип данных местоположений точки'double'
(значение по умолчанию) | 'duration'
Тип данных местоположений точки, заданных или как 'double'
или как 'duration'
. Это свойство применяется только, когда LabelType установлен в 'point'
.
Типы данных: char | string
ValidationFunction
— Функция валидацииФункция валидации, заданная как указатель на функцию и используемая при устанавливании значений метки в объекте labeledSignalSet
. Это свойство применяется только, когда LabelDataType установлен в 'categorical'
, 'logical'
, 'numeric'
, 'table'
или 'timetable'
. Если не заданный, функция проверяет только, что ее входные значения имеют правильный тип данных. Если LabelDataType установлен в 'categorical'
, функция проверяет, что вход является одним из значений, заданных с помощью Категорий. Функция берет входное значение и возвращает true
, если значение допустимо и false
, если значение недопустимо.
Пример: 'LabelDataType','numeric','DefaultValue',1,'ValidationFunction',@(x)x<2
Типы данных: function_handle
DefaultValue
— Значение по умолчанию метки[]
(значение по умолчанию) | значение LabelDataType
Значение по умолчанию метки, заданной как значение типа, заданного с помощью LabelDataType. Если LabelDataType установлен в 'categorical'
, то DefaultValue должен быть одним из значений, заданных с помощью Категорий.
Пример: 'LabelDataType','categorical','Categories',["apple","orange"],'DefaultValue',"apple"
Типы данных: char
| double
| logical
| string
| table
Описание
Маркируйте описаниеМаркируйте описание, заданное как вектор символов, или представьте скаляр в виде строки.
Пример: 'Description','Patient is asleep'
Типы данных: char | string
Тег
Идентификатор тега labelИдентификатор тега label, заданный как вектор символов или скаляр строки. Используйте это свойство идентифицировать ту же метку в большей схеме маркировки или общедоступном наборе маркировки.
Пример: 'Tag','Peak1'
Типы данных: char | string
Sublabels
— Массив подметокМассив подметок, заданных как объект определения метки сигнала. Чтобы задать больше чем одну подметку, установите это свойство на вектор объектов определения метки сигнала. Используйте это свойство создать отношение между родительской меткой и ее дочерними элементами.
Подметки не могут иметь подметок.
Пример: 'Sublabels',[signalLabelDefinition("negative"),signalLabelDefinition("positive")]
labelDefinitionsHierarchy | Получите иерархический список метки и подмаркируйте имена |
labelDefinitionsSummary | Получите сводную таблицу определений метки сигнала |
Рассмотрите набор аудиозаписей кита. Записанные звуки кита состоят из трелей и стонов. Вы хотите посмотреть на каждый сигнал и маркировать его, чтобы идентифицировать тип кита, области трели и области стона. Для каждой области трели вы также хотите маркировать peaks сигнала выше, чем определенный порог.
Определения метки сигнала
Задайте метку атрибута, чтобы сохранить типы кита. Возможные категории являются голубым китом, горбатым китом и белухой.
dWhaleType = signalLabelDefinition('WhaleType',... 'LabelType','attribute',... 'LabelDataType','categorical',... 'Categories', ["blue" "humpback" "white"],... 'Description','Whale type');
Задайте метку видимой области (ROI), чтобы получить области стона. Задайте другую метку ROI, чтобы получить области трели.
dMoans = signalLabelDefinition('MoanRegions',... 'LabelType','roi',... 'LabelDataType','logical',... 'Description','Regions where moans occur'); dTrills = signalLabelDefinition('TrillRegions',... 'LabelType','roi',... 'LabelDataType','logical',... 'Description','Regions where trills occur');
Наконец, задайте метку точки, чтобы получить peaks трели. Установите эту метку как подметку определения dTrills
.
dTrillPeaks = signalLabelDefinition('TrillPeaks',... 'LabelType','point',... 'LabelDataType','numeric',... 'Description','Trill peaks'); dTrills.Sublabels = dTrillPeaks;
Маркированный набор сигнала
Создайте labeledSignalSet
с сигналами кита и определениями метки. Добавьте значения метки, чтобы идентифицировать тип кита, стон и области трели и peaks трелей.
load labelwhalesignals lbldefs = [dWhaleType dMoans dTrills]; lss = labeledSignalSet({whale1 whale2},lbldefs,... 'SampleRate',Fs,'Description','Characterize wave song regions');
Визуализируйте иерархию метки и маркируйте свойства с помощью labelDefinitionsHierarchy
и labelDefinitionsSummary
.
labelDefinitionsHierarchy(lss)
ans = 'WhaleType Sublabels: [] MoanRegions Sublabels: [] TrillRegions Sublabels: TrillPeaks '
labelDefinitionsSummary(lss)
ans=3×9 table
LabelName LabelType LabelDataType Categories ValidationFunction DefaultValue Sublabels Tag Description
______________ ___________ _____________ ____________ __________________ ____________ ___________________________ ___ ____________________________
"WhaleType" "attribute" "categorical" [3x1 string] ["N/A"] [] [] "" "Whale type"
"MoanRegions" "roi" "logical" ["N/A" ] [] [] [] "" "Regions where moans occur"
"TrillRegions" "roi" "logical" ["N/A" ] [] [] [1x1 signalLabelDefinition] "" "Regions where trills occur"
Сигналы в загруженных данных соответствуют песням двух голубых китов. Установите значения 'WhaleType'
для обоих сигналов.
setLabelValue(lss,1,'WhaleType','blue'); setLabelValue(lss,2,'WhaleType','blue');
Визуализируйте свойство 'Labels'
. Таблица имеет недавно добавленные значения 'WhaleType'
для обоих сигналов.
lss.Labels
ans=2×3 table
WhaleType MoanRegions TrillRegions
_________ ___________ ____________
Member{1} blue [0x2 table] [0x3 table]
Member{2} blue [0x2 table] [0x3 table]
Визуализируйте области и точки
Визуализируйте песни кита, чтобы идентифицировать области стона и трель.
subplot(2,1,1) plot((0:length(whale1)-1)/Fs,whale1) ylabel('Whale 1') hold on subplot(2,1,2) plot((0:length(whale2)-1)/Fs,whale2) ylabel('Whale 2') hold on
Добавьте стон и области трели к маркированному набору. Для меток ROI задайте пределы ROI в секундах и значениях метки. Маркируйте различные области в графиках с помощью вспомогательной функции.
moanRegionsWhale1 = [6.1 7.7; 11.4 13.1; 16.5 18.1]; setLabelValue(lss,1,'MoanRegions',moanRegionsWhale1,[true true true]); trillRegionWhale1 = [1.4 3.1]; setLabelValue(lss,1,'TrillRegions',trillRegionWhale1,true); subplot(2,1,1) labelIntervals([moanRegionsWhale1;trillRegionWhale1]) moanRegionsWhale2 = [2.5 3.5; 5.8 8; 15.4 16.7]; setLabelValue(lss,2,'MoanRegions',moanRegionsWhale2,[true true true]); trillRegionWhale2 = [11.1 13]; setLabelValue(lss,2,'TrillRegions',trillRegionWhale2,true); subplot(2,1,2) labelIntervals([moanRegionsWhale2;trillRegionWhale2])
Маркируйте три peaks для каждой области трели. Для меток точки вы задаете местоположения точки и значения метки. В этом примере местоположения точки находятся в секундах.
peakLocsWhale1 = [1.553 1.626 1.7]; peakValsWhale1 = [0.211 0.254 0.211]; setLabelValue(lss,1,["TrillRegions" "TrillPeaks"],... peakLocsWhale1,peakValsWhale1,'LabelRowIndex',1); subplot(2,1,1) plot(peakLocsWhale1,peakValsWhale1,'v') hold off peakLocsWhale2 = [11.214 11.288 11.437]; peakValsWhale2 = [0.119 0.14 0.15]; setLabelValue(lss,2,["TrillRegions" "TrillPeaks"],... peakLocsWhale2,peakValsWhale2,'LabelRowIndex',1); subplot(2,1,2) plot(peakLocsWhale2,peakValsWhale2,'v') hold off
Исследуйте значения метки
Исследуйте значения метки с помощью getLabelValues
.
getLabelValues(lss)
ans=2×3 table
WhaleType MoanRegions TrillRegions
_________ ___________ ____________
Member{1} blue [3x2 table] [1x3 table]
Member{2} blue [3x2 table] [1x3 table]
Получите области стона для первого члена маркированного набора.
getLabelValues(lss,1,'MoanRegions')
ans=3×2 table
ROILimits Value
____________ _____
6.1 7.7 [1]
11.4 13.1 [1]
16.5 18.1 [1]
Используйте второй выходной аргумент, чтобы перечислить подметки метки.
[value,valueWithSublabel] = getLabelValues(lss,1,'TrillRegions')
value=1×2 table
ROILimits Value
__________ _____
1.4 3.1 [1]
valueWithSublabel=1×3 table
ROILimits Value Sublabels
TrillPeaks
__________ _____ ___________
1.4 3.1 [1] [3x2 table]
Чтобы получить значения в подметке, выразите имя метки как двухэлементный массив.
getLabelValues(lss,1,["TrillRegions" "TrillPeaks"])
ans=3×2 table
Location Value
________ ________
1.553 [0.2110]
1.626 [0.2540]
1.7 [0.2110]
Найдите значение третьего соответствия пика трели второму члену набора.
getLabelValues(lss,2,["TrillRegions" "TrillPeaks"], ... 'LabelRowIndex',1,'SublabelRowIndex',3)
ans=1×2 table
Location Value
________ ________
11.437 [0.1500]
function labelIntervals(moansTrills) % Auxiliary function to label moan and trill regions in plots [X,Y] = meshgrid(moansTrills,ylim); plot(X,Y,'k:') topts = {'HorizontalAlignment','center','FontWeight','bold', ... 'FontSize',12,'Color',[139 69 19]/255}; text((X(1,1:4)+X(1,5:end))/2,Y(2,5:end)-0.1, ... ["moan" "moan" "moan" "trill"],topts{:}) end
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.