Создайте помеченный набор сигнала
Используйте labeledSignalSet
сохранить помеченные сигналы наряду с определениями метки. Создайте определения метки сигнала с помощью signalLabelDefinition
.
создает пустой помеченный набор сигнала. Используйте lss
= labeledSignalSetaddMembers
добавить сигналы в набор. Используйте addLabelDefinitions
добавить определения метки набору.
создает помеченный набор сигнала для источника входных данных lss
= labeledSignalSet(src
)src
. Используйте addLabelDefinitions
добавить определения метки набору.
создает помеченный набор сигнала для источника входных данных lss
= labeledSignalSet(src
,lbldefs
)src
использование определений метки сигнала lbldefs
. Используйте signalLabelDefinition
чтобы создать сигнал помечают определения.
создает помеченный набор сигнала для источника входных данных lss
= labeledSignalSet(src
,lbldefs
,'MemberNames',mnames
)src
и задает имена для членов набора. Используйте setMemberNames
изменить имена элемента. lbldefs
является дополнительным.
src
— Источник входных данныхИсточник входных данных, заданный как матрица, расписание, массив ячеек или аудио datastore. src
задает число членов набора, количество сигналов в каждом участнике и данных в каждом сигнале.
lbldefs
Определения метокsignalLabelDefinition
объектыПометьте определения, заданные как вектор signalLabelDefinition
объекты.
mnames
— Имена элементаИмена элемента, заданные как вектор символов, скаляр строки, массив ячеек из символьных векторов или массив строк.
Пример: labeledSignalSet({randn(100,1) randn(10,1)},'MemberNames',{'llama' 'alpaca'})
задает набор случайных сигналов с двумя участниками, 'llama'
и 'alpaca'
.
Description
— Помеченное описание набора сигналаПомеченное описание набора сигнала, заданное как вектор символов или скаляр строки.
Пример: 'Description','Sleep test patients by sex and age'
Типы данных: char |
string
SampleRate
— Значения частоты дискретизацииЭто свойство доступно только для чтения.
Значения частоты дискретизации, заданные как положительная скалярная величина или вектор. Это свойство допустимо только, когда источник данных не содержит свойственную информацию времени.
Установите SampleRate
к положительному числовому скаляру, чтобы задать ту же частоту дискретизации для всех сигналов в помеченном наборе.
Установите SampleRate
к вектору, чтобы указать, что у каждого члена помеченного набора есть сигналы, произведенные на том же уровне, но частоты дискретизации отличаются от участника участнику. Вектор должен иметь много элементов, равных числу членов набора. Если у члена набора есть сигналы с различными частотами дискретизации, то задайте частоты дискретизации с помощью расписаний.
Пример: 'SampleRate',[1e2 1e3]
указывает, что сигналы в первом члене набора производятся на уровне 100 Гц, и сигналы во втором участнике производятся на уровне 1 кГц.
SampleTime
— Значения шага расчетаduration
скаляр | duration
векторЭто свойство доступно только для чтения.
Значения шага расчета, заданные как положительная скалярная величина, вектор, duration
скаляр или duration
вектор. Это свойство допустимо только, когда источник данных не содержит свойственную информацию времени.
Установите SampleTime
к числовому или duration
скаляр, чтобы задать тот же шаг расчета для всех сигналов в помеченном наборе.
Установите SampleTime
к числовому или duration
вектор, чтобы указать, что у каждого члена помеченного набора есть сигналы с тем же временным интервалом между выборками, но интервалы отличаются от участника участнику. Вектор должен иметь много элементов, равных числу членов набора. Если у члена набора есть сигналы с различными шагами расчета, то задайте шаги расчета с помощью расписаний.
Пример: 'SampleTime',seconds([1e-2 1e-3])
указывает, что сигналы в первом члене набора имеют 0,01 секунды между выборками, и сигналы во втором участнике имеют 1 миллисекунду между выборками.
TimeValues
— Временные стоимостиduration
вектор | матрица | массив ячеекЭто свойство доступно только для чтения.
Временные стоимости, заданные как вектор, duration
вектор, матрица или массив ячеек. Это свойство допустимо только, когда источник данных не содержит свойственную информацию времени. Временные стоимости должны быть уникальными и увеличиться.
Установите TimeValues
к числовому или duration
вектор, чтобы задать те же временные стоимости для всех сигналов в помеченном наборе. Вектор должен иметь ту же длину как все сигналы в наборе.
Установите TimeValues
к числовому или duration
матричный или массив ячеек, чтобы указать, что у каждого члена помеченного набора есть сигналы с теми же временными стоимостями, но временные стоимости отличаются от участника участнику.
Если TimeValues
матрица, затем она должна иметь много столбцов, равных числу членов набора. Все сигналы в наборе должны иметь длину, равную количеству строк матрицы.
Если TimeValues
массив ячеек, затем он должен содержать много векторов, равных числу членов набора. Все сигналы в участнике должны иметь длину, равную числу элементов соответствующего вектора в массиве ячеек.
Если у члена набора есть сигналы с различными временными стоимостями, то задайте временные стоимости с помощью расписаний.
Пример: 'TimeValues',[1:1000;0:1/500:2-1/500]'
указывает, что сигналы в первом члене набора производятся 1 Гц в течение 1 000 секунд. Сигналы во втором участнике производятся на уровне 500 Гц в течение 2 секунд.
Пример: 'TimeValues',seconds([1:1000;0:1/500:2-1/500]')
указывает, что сигналы в первом члене набора производятся 1 Гц в течение 1 000 секунд. Сигналы во втором участнике производятся на уровне 500 Гц в течение 2 секунд.
Пример: 'TimeValues',{1:1000,0:1/500:2-1/500}
указывает, что сигналы в первом члене набора производятся 1 Гц в течение 1 000 секунд. Сигналы во втором участнике производятся на уровне 500 Гц в течение 2 секунд.
Пример: 'TimeValues',{seconds(1:1000),seconds(0:1/500:2-1/500)}
указывает, что сигналы в первом члене набора производятся 1 Гц в течение 1 000 секунд. Сигналы во втором участнике производятся на уровне 500 Гц в течение 2 секунд.
NumMembers
— Число членов в набореЭто свойство доступно только для чтения.
Число членов в наборе, заданном как положительное целое число.
Labels
— Таблица метокЭто свойство доступно только для чтения.
Таблица меток, заданная как таблица MATLAB®. Каждая переменная Labels
соответствует метке, заданной для набора. Каждая строка Labels
соответствует члену источника данных. Имена строки Labels
имена элемента.
Типы данных: table
TimeInformation
— Информация времени источника'None'
| 'SampleRate'
| 'SampleTime'
| 'TimeValues'
| 'Inherent'
Информация времени источника, заданного как одно из следующего:
'None'
— У сигналов в источнике нет времени информация.
'SampleRate'
— Сигналы в источнике производятся на заданном уровне.
'SampleTime'
— Сигналы в источнике имеют интервал требуемого времени между выборками.
'TimeValues
— Сигналы в источнике имеют временную стоимость, соответствующую каждой выборке.
'Inherent'
— Сигналы в источнике содержат свойственную информацию времени. Расписания MATLAB являются примером таких сигналов.
Типы данных: char |
string
Source
— Источник данных помеченного набора сигналаЭто свойство доступно только для чтения.
Источник данных помеченного набора сигнала, заданного как матрица, расписание, массив ячеек или аудио datastore.
Если Source
числовая матрица, затем помеченный набор сигнала имеет одного участника, который содержит много сигналов, равных количеству столбцов матрицы.
Пример:
labeledSignalSet(randn(10,3))
имеет одного участника, который содержит три сигнала с 10 выборками.
Если Source
массив ячеек матриц, затем помеченный набор сигнала имеет много участников, равных количеству матриц в массиве ячеек. Каждый участник содержит много сигналов, равных количеству столбцов соответствующей матрицы.
Пример:
labeledSignalSet({randn(10,3),randn(17,9)})
имеет двух участников. Первый участник содержит три сигнала с 10 выборками. Второй участник содержит девять сигналов с 17 выборками.
Если Source
массив ячеек, и каждый элемент массива ячеек является массивом ячеек числовых векторов, затем помеченный набор сигнала имеет много участников, равных количеству элементов массива ячеек. Каждый сигнал в участнике может иметь любую длину.
Пример:
labeledSignalSet({{randn(10,1)},{randn(17,1),randn(27,1)}})
имеет двух участников. Первый участник содержит один сигнал с 10 выборками. Второй участник содержит сигнал с 17 выборками и сигнал с 27 выборками.
Если Source
расписание с переменными, содержащими числовые значения, затем помеченный набор сигнала имеет одного участника, который содержит много сигналов, равных количеству переменных. Временные стоимости расписания должны иметь тип duration
, уникальный, и увеличение.
Пример:
labeledSignalSet(timetable(seconds(1:10)',randn(10,3)))
имеет одного участника, который содержит три сигнала, произведенные на уровне 1 Гц в течение 10 секунд.
Если Source
массив ячеек расписаний, и каждое расписание имеет произвольное число переменных с числовыми значениями, затем помеченный набор сигнала имеет много участников, равных количеству расписаний. Каждый участник содержит много сигналов, равных количеству переменных в соответствующем расписании.
Пример:
labeledSignalSet({timetable(seconds(1:10)',randn(10,3)),timetable(seconds(1:5)',randn(5,13))})
имеет двух участников. Первый участник содержит три сигнала, произведенные на уровне 1 Гц в течение 10 секунд. Второй участник содержит 13 сигналов, произведенных на уровне 1 Гц в течение 5 секунд.
Если Source
массив ячеек, и каждый элемент массива ячеек является массивом ячеек расписаний, затем помеченный набор сигнала имеет много участников, равных количеству элементов массива ячеек. У каждого участника может быть любое количество расписаний, и каждое расписание в участнике может иметь любое количество переменных.
Пример:
labeledSignalSet({{timetable(seconds(1:10)',randn(10,3)),timetable(seconds(1:7)',randn(7,2))},{timetable(seconds(1:3)',randn(3,1))}})
имеет двух участников. Первый участник содержит три сигнала, произведенные на уровне 1 Гц в течение 10 секунд и двух сигналов, произведенных на уровне 1 Гц в течение 7 секунд. Второй участник содержит один сигнал, произведенный на уровне 1 Гц в течение 3 секунд.
Если источник входных данных, src
, аудио datastore, затем помеченный набор сигнала имеет много участников, равных количеству файлов, на которые указывает datastore. Source
свойство содержит массив ячеек из символьных векторов с именами файлов. Каждый участник содержит все сигналы, возвращенные чтением соответствующего файла datastore.
addLabelDefinitions | Добавьте определения метки помеченному набору сигнала |
addMembers | Добавьте участников в помеченный набор сигнала |
concatenate | Конкатенация двух или больше помеченных наборов сигнала |
editLabelDefinition | Отредактируйте свойства определения метки |
getLabelDefinitions | Получите определения метки в помеченном наборе сигнала |
getLabeledSignal | Получите помеченные сигналы от помеченного набора сигнала |
getLabelNames | Получите имена метки в помеченном наборе сигнала |
getLabelValues | Получите значения метки от помеченного набора сигнала |
getMemberNames | Получите имена элемента в помеченном наборе сигнала |
getSignal | Получите сигналы от помеченного набора сигнала |
head | Получите верхние строки таблицы меток |
labelDefinitionsHierarchy | Получите иерархический список метки и подпометьте имена |
labelDefinitionsSummary | Получите сводную таблицу определений метки сигнала |
removeLabelDefinition | Удалите определение метки из помеченного набора сигнала |
removeMembers | Удалите участников из помеченного набора сигнала |
removePointValue | Удалите строку из метки точки |
removeRegionValue | Удалите строку из метки ROI |
resetLabelValues | Сбросьте метки к значениям по умолчанию |
setLabelValue | Установите значение метки в помеченном наборе сигнала |
setMemberNames | Элемент множества называет в помеченном наборе сигнала |
subset | Получите новый помеченный набор сигнала с подмножеством участников |
Рассмотрите набор аудиозаписей кита. Записанные звуки кита состоят из трелей и стонов. Вы хотите посмотреть на каждый сигнал и пометить его, чтобы идентифицировать тип кита, области трели и области стона. Для каждой области трели вы также хотите пометить 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" ]} {0x0 double} {0x0 double } "" "Whale type"
"MoanRegions" "roi" "logical" {["N/A" ]} {0x0 double} {0x0 double} {0x0 double } "" "Regions where moans occur"
"TrillRegions" "roi" "logical" {["N/A" ]} {0x0 double} {0x0 double} {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
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.