Найти локальные максимумы
задает дополнительные параметры для нахождения локальных максимумов, используя один или несколько аргументы пары "имя-значение". Для примера, TF
= islocalmax(___,Name,Value
)islocalmax(A,'SamplePoints',t)
находит локальные максимумы A
относительно меток времени, содержащихся в временном векторе t
.
[
также возвращает известность, соответствующую каждому элементу TF
,P
] = islocalmax(___)A
для любого из предыдущих синтаксисов.
Вычислите и постройте график локальных максимумов вектора данных.
x = 1:100;
A = (1-cos(2*pi*0.01*x)).*sin(2*pi*0.15*x);
TF = islocalmax(A);
plot(x,A,x(TF),A(TF),'r*')
Создайте матрицу данных и вычислите локальные максимумы для каждой строки.
A = 25*diag(ones(5,1)) + rand(5,5); TF = islocalmax(A,2)
TF = 5x5 logical array
0 0 1 0 0
0 1 0 0 0
0 0 1 0 0
0 1 0 1 0
0 1 0 0 0
Вычислите локальные максимумы вектора данных относительно меток времени в векторе t
. Используйте 'MinSeparation'
параметр для вычисления максимумов с интервалом не менее 45 минут.
t = hours(linspace(0,3,15)); A = [2 4 6 4 3 7 5 6 5 10 4 -1 -3 -2 0]; TF = islocalmax(A,'MinSeparation',minutes(45),'SamplePoints',t); plot(t,A,t(TF),A(TF),'r*')
Задайте метод для указания последовательных максимальных значений.
Вычислите локальные максимумы данных, которые содержат последовательные максимальные значения. Указание максимума каждой плоской области на основе первого вхождения этого значения.
x = 0:0.1:5; A = min(0.75, sin(pi*x)); TF1 = islocalmax(A, 'FlatSelection', 'first'); plot(x,A,x(TF1),A(TF1),'r*')
Укажите максимальное значение каждой плоской области со всеми вхождениями этого значения.
TF2 = islocalmax(A, 'FlatSelection', 'all'); plot(x,A,x(TF2),A(TF2),'r*')
Выберите максимумы на основе их известности.
Вычислите локальные максимумы вектора данных и их известность, а затем постройте график с данными.
x = 1:100; A = peaks(100); A = A(50,:); [TF1,P] = islocalmax(A); P(TF1)
ans = 1×2
1.7703 3.5548
plot(x,A,x(TF1),A(TF1),'r*') axis tight
Вычислите только самый заметный максимум в данных, указав требование минимальной известности.
TF2 = islocalmax(A,'MinProminence',2); plot(x,A,x(TF2),A(TF2),'r*') axis tight
A
- Входные данныеВходные данные, заданные как вектор, матрица, многомерный массив, таблица или timetable.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| table
| timetable
dim
- Рабочая размерностьРабочая размерность, заданная как положительный целочисленный скаляр По умолчанию islocalmax
действует вдоль первой размерности, размер которого не равен 1.
Для примера, если A
является матрицей, тогда islocalmax(A,1)
действует вдоль строк A
, вычисление локальных максимумов для каждого столбца.
islocalmax(A,2)
действует вдоль столбцов A
, вычисление локальных максимумов для каждой строки.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
TF = islocalmax(A,'MinProminence',2)
'SamplePoints'
- Точки выборкиТочки выборки, заданные как разделенная разделенными запятой парами, состоящая из 'SamplePoints'
и вектор. Точки выборки представляют x местоположения данных в осях A
, и должен быть отсортирован и содержать уникальные элементы. Точки выборки не нужно равномерно отбирать. Вектор точек выборки по умолчанию [1 2 3 ...]
.
Примечание
Эта пара "имя-значение" не поддерживается, когда входные данные являются timetable
. В Timetables всегда используется вектор времени строки в качестве точек выборки. Чтобы использовать различные точки выборки, необходимо отредактировать расписание так, чтобы время в строке содержало требуемые точки выборки.
Пример: islocalmax(T,'SamplePoints',0:0.1:10)
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| datetime
| duration
'DataVariables'
- Табличные переменные для работыvartype
индексТабличные переменные для работы, заданные как разделенная разделенными запятой парами, состоящая из 'DataVariables'
и один из опций в этой таблице. The 'DataVariables'
значение указывает, какие переменные таблицы входа необходимо проверить на локальные максимумы. Тип данных, сопоставленный с указанными переменными, должен быть числовым или logical
. Другие переменные в таблице, не заданные 'DataVariables'
не работают, поэтому выходы содержат false
значения для этих переменных.
Опция | Описание | Примеры |
---|---|---|
Имя переменной | Вектор символов или скалярная строка, задающая имя табличной переменной |
|
Вектор имен переменных | Массив ячеек из векторов символов или строковых массивов, где каждый элемент является именем табличной переменной |
|
Скаляр или вектор переменных индексов | Скаляр или вектор табличных переменных |
|
Логический вектор | Логический вектор, элементы которого каждый соответствуют табличной переменной, где |
|
Указатель на функцию | Указатель на функцию, который принимает табличную переменную как вход и возвращает логический скаляр |
|
vartype индекс | Индекс таблицы, сгенерированный |
|
Пример: islocalmax(T,'DataVariables',["Var1" "Var2" "Var4"])
'MinProminence'
- Минимальное значениеМинимальная известность, заданная как разделенная разделенными запятой парами, состоящая из 'MinProminence'
и неотрицательный скаляр. islocalmax
возвращает только локальные максимумы, известность которых является по крайней мере заданным значением.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
'ProminenceWindow'
- Окно известностиОкно Prominence, заданное как разделенная разделенными запятой парами, состоящая из 'ProminenceWindow'
и положительный целочисленный скаляр, двухэлементный вектор положительных целых чисел, положительный скаляр длительности или двухэлементный вектор положительных длительностей. Значение задает окно соседних точек, для которого можно вычислить известность для каждого локального максимума.
Когда значение окна является положительным целым скалярным k, то окно центрируется вокруг каждого локального максимума и содержит k-1 соседних элементов. Если k ровен, то окно центрируется вокруг текущего и предыдущего элементов. Если локальный максимум находится в пределах плоской области, то islocalmax
обрабатывает всю плоскую область как центральную точку окна.
Когда значение является двухэлементным вектором [b f]
из положительных целых чисел, тогда окно содержит локальный максимум, b
элементы назад и f
элементы вперед. Если локальный максимум находится внутри плоской области, то окно запускается b
элементы перед первой точкой области и заканчиваются f
элементы после последней точки области.
Когда входные данные являются расписанием или когда 'SamplePoints'
задается как datetime
или duration
вектор, значение окна должно быть типа duration
, и окно вычисляется относительно точек выборки.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| duration
'FlatSelection'
- Индикатор плоской области'center'
(по умолчанию) | 'first'
| 'last'
| 'all'
Индикатор плоской области для, когда локальное максимальное значение повторяется последовательно, задается как разделенная разделенными запятой парами, состоящая из 'FlatSelection'
и одно из следующих:
'center'
- Указание только центрального элемента массива плоской области как локального максимума. Элемент TF
соответствующий центру плоского слоя равен 1 и равен 0 для остальных плоских элементов.
'first'
- Указание только первого элемента массива плоской области как локального максимума. Элемент TF
соответствующий началу плоского слоя равен 1 и равен 0 для остальных плоских элементов.
'last'
- Указание только последнего элемента массива плоской области как локального максимума. Элемент TF
соответствующий концу плоского слоя равен 1 и равен 0 для остальных плоских элементов.
'all'
- Все элементы массива плоской области указываются как локальные максимумы. Элементы TF
соответствующие всем частям плоской равны 1.
При использовании 'MinSeparation'
или 'MaxNumExtrema'
Пары "имя-значение" точки с плоской областью совместно считаются одной максимальной точкой.
'MinSeparation'
- Минимальное разделениеМинимальное разделение между локальными максимумами, заданное как разделенная разделенными запятой парами, состоящая из 'MinSeparation'
и неотрицательный скаляр. Значение разделения определяется в тех же модулях, что и вектор точек выборки, который [1 2 3 ...]
по умолчанию. Когда значение разделения больше 0, islocalmax
выбирает наибольший локальный максимум и игнорирует все другие локальные максимумы в пределах заданного разделения. Этот процесс повторяется до тех пор, пока не будут обнаружены локальные максимумы.
Когда вектор точек выборки имеет тип datetime
, значение разделения должно иметь тип duration
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| duration
'MaxNumExtrema'
- Максимальное количество максимумовМаксимальное количество обнаруженных максимумов, заданное как разделенная разделенными запятой парами, состоящая из 'MaxNumExtrema'
и положительный целочисленный скаляр. islocalmax
находит не более заданного числа наиболее заметных максимумов, которое является длиной рабочей размерности по умолчанию.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
TF
- Локальный индикатор максимумаЛокальный индикатор maxima, возвращенный как векторный, матричный или многомерный массив. TF
- тот же размер, что и A
.
Типы данных: logical
P
- ИзвестностьИзвестность, возвращенная как векторный, матричный или многомерный массив. P
- тот же размер, что и A
.
Если входные данные имеют целый тип со знаком или без знака, то P
- беззнаковое целое число.
Известность локального максимума (или пика) измеряет, как пик выделяется относительно его высоты и местоположения относительно другого peaks.
Чтобы измерить известность пика, сначала протяните горизонтальную линию от пика налево и справа от пика. Найдите, где линия пересекает данные слева и справа, которые будут либо другим пиком, либо концом данных. Отметьте эти местоположения как внешние конечные точки левого и правого интервалов. Далее найдем самый низкий овраг в обоих интервалах. Возьмите большую из этих двух оврагов и измерьте вертикальное расстояние от оврага до вершины. Это расстояние является известностью.
Для вектора x
самая большая известность - самое большее max(x)-min(x)
.
Указания и ограничения по применению:
Длинные расписания не поддерживаются.
Вы должны задать значение для 'ProminenceWindow'
Пара "имя-значение".
The 'MaxNumExtrema'
, 'MinSeparation'
, и 'SamplePoints'
пары "имя-значение" не поддерживаются.
Значение 'DataVariables'
не может быть указателем на функцию.
Для получения дополнительной информации см. Раздел «Длинные массивы»
Указания и ограничения по применению:
Необходимо включить поддержку массивов переменного размера.
The 'ProminenceWindow'
Пара "имя-значение" не поддерживается.
Поиск локальной экстремы | ischange
| islocalmin
| isoutlier
| max
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.