islocalmax

Найдите локальные максимумы

Описание

пример

TF = islocalmax(A) возвращает логический массив, элементы которого равняются 1 (true) когда локальный максимум обнаруживается в соответствующем элементе массива, таблицы или расписания.

TF = islocalmax(A,dim) задает размерность A действовать вперед. Например, islocalmax(A,2) находит локальные максимумы каждой строки матричного A.

пример

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

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

свернуть все

Входные данные, заданные как вектор, матрица, многомерный массив, таблица или расписание.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | table | timetable

Операционная размерность, заданная как положительный целочисленный скаляр. По умолчанию, 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)

Минимальное выдающееся положение, заданное как разделенная запятой пара, состоящая из 'MinProminence' и неотрицательный скаляр. islocalmax возвращает только локальные максимумы, выдающееся положение которых является, по крайней мере, заданным значением.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Окно 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' — Укажите только на центральный элемент плоской области как локальный максимум. Элемент TF соответствие центру плоского равняется 1 и 0 для остающихся плоских элементов.

  • 'first' — Укажите только на первый элемент плоской области как локальный максимум. Элемент TF соответствие запуску плоского равняется 1 и 0 для остающихся плоских элементов.

  • 'last' — Укажите только на последний элемент плоской области как локальный максимум. Элемент TF соответствующий в конец плоского 1 и 0 для остающихся плоских элементов.

  • 'all' — Укажите на все элементы плоской области как локальные максимумы. Элементы TF соответствие всем частям плоского равняется 1.

При использовании 'MinSeparation' или 'MaxNumExtrema' пары "имя-значение", плоские точки области совместно рассматриваются один максимальный вопрос.

Минимальное разделение между локальными максимумами, заданными как разделенная запятой пара, состоящая из 'MinSeparation' и неотрицательный скаляр. Разделительное значение задано в тех же модулях как вектор точек выборки, который является [1 2 3 ...] по умолчанию. Когда разделительное значение больше 0, islocalmax выбирает самый большой локальный максимум и игнорирует все другие локальные максимумы в рамках заданного разделения. Этот процесс повторяется, пока больше нет локальных обнаруженных максимумов.

Когда вектор точек выборки имеет, вводят datetime, разделительное значение должно иметь, вводят duration.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

Максимальное количество максимумов, обнаруженных, заданных как разделенная запятой пара, состоящая из 'MaxNumExtrema' и положительный целочисленный скаляр. islocalmax находит не больше, чем конкретное количество большинства видных максимумов, которое является длиной операционной размерности по умолчанию.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Точки выборки, заданные как разделенная запятой пара, состоящая из 'SamplePoints' и вектор. Точки выборки представляют местоположение данных в A. Точки выборки не должны быть однородно произведены, но должны быть отсортированы с уникальными элементами. По умолчанию вектором точек выборки является [1 2 3 ...].

islocalmax не поддерживает эту пару "имя-значение", когда входные данные являются расписанием.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

Табличные переменные, заданные как разделенная запятой пара, состоящая из 'DataVariables' и имя переменной, массив ячеек имен переменных, числового вектора, логического вектора или указателя на функцию. 'DataVariables' значение указывает который столбцы входной таблицы или расписания, чтобы работать с. Это значение может быть одним из следующего:

  • Вектор символов, задающий одно имя табличной переменной

  • Массив ячеек из символьных векторов, где каждый элемент является именем табличной переменной

  • Вектор индексов табличной переменной

  • Логический вектор, элементы которого каждый соответствует табличной переменной, где true включает соответствующую переменную и false исключает его

  • Указатель на функцию, который берет табличную переменную в качестве входа и возвращает логический скаляр

Заданные табличные переменные должны иметь числовой или logical ввод.

Пример: 'Age'

Пример: {'Height','Weight'}

Пример: @isnumeric

Типы данных: char | cell | double | single | logical | function_handle

Выходные аргументы

свернуть все

Локальный индикатор максимумов, возвращенный как вектор, матрица или многомерный массив. TF одного размера с A.

Типы данных: логический

Выдающееся положение, возвращенное как вектор, матрица или многомерный массив. P одного размера с A.

Если входные данные имеют целое число со знаком или тип беззнаковых целых чисел, то P беззнаковое целое.

Больше о

свернуть все

Выдающееся положение локального максимума

Выдающееся положение локального максимума (или пик) измеряется, как пик выделяется относительно своей высоты и местоположения относительно другого peaks.

Чтобы измерить выдающееся положение пика, сначала расширьте горизонтальную линию от пика налево и справа от пика. Найдите, где линия пересекает данные слева и справа, который или будет другим пиком или концом данных. Отметьте эти местоположения как внешние конечные точки левых и правых интервалов. Затем найдите самый низкий овраг в обоих интервалах. Возьмите большие из этих двух оврагов и измерьте вертикальное расстояние от того оврага до пика. Это расстояние является выдающимся положением.

Для векторного x, самое большое выдающееся положение в большей части max(x)-min(x).

Расширенные возможности

Введенный в R2017b