islocalmin

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

Описание

пример

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

пример

TF = islocalmin(A,dim) задает размерность A для работы. Для примера, islocalmin(A,2) находит локальные минимумы каждой строки матрицы A.

пример

TF = islocalmin(___,Name,Value) задает дополнительные параметры для нахождения локальных минимумов, используя один или несколько аргументы пары "имя-значение". Для примера, islocalmin(A,'SamplePoints',t) находит локальные минимумы A относительно меток времени, содержащихся в временном векторе t.

пример

[TF,P] = islocalmin(___) также возвращает известность, соответствующую каждому элементу A для любого из предыдущих синтаксисов.

Примеры

свернуть все

Вычислите и постройте график локальных минимумов вектора данных.

x = 1:100;
A = (1-cos(2*pi*0.01*x)).*sin(2*pi*0.15*x);
TF = islocalmin(A);
plot(x,A,x(TF),A(TF),'r*')

Figure contains an axes. The axes contains 2 objects of type line.

Создайте матрицу данных и вычислите локальные минимумы для каждой строки.

A = -25*diag(ones(5,1)) + rand(5,5);
TF = islocalmin(A,2)
TF = 5x5 logical array

   0   0   0   1   0
   0   1   0   0   0
   0   0   1   0   0
   0   0   0   1   0
   0   0   1   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 = islocalmin(A,'MinSeparation',minutes(45),'SamplePoints',t);
plot(t,A,t(TF),A(TF),'r*')

Figure contains an axes. The axes contains 2 objects of type line.

Задайте метод для указания последовательных минимальных значений.

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

x = 0:0.1:5;
A = max(-0.75, sin(pi*x));
TF1 = islocalmin(A, 'FlatSelection', 'first');
plot(x,A,x(TF1),A(TF1),'r*')

Figure contains an axes. The axes contains 2 objects of type line.

Укажите минимум каждой плоской области со всеми вхождениями этого значения.

TF2 = islocalmin(A, 'FlatSelection', 'all');
plot(x,A,x(TF2),A(TF2),'r*')

Figure contains an axes. The axes contains 2 objects of type line.

Вычислите локальные минимумы вектора данных и их известность, а затем постройте график с данными.

x = 1:100;
A = peaks(100);
A = A(50,:);
[TF1,P] = islocalmin(A);
P(TF1)
ans = 1×2

    2.7585    1.7703

plot(x,A,x(TF1),A(TF1),'r*')
axis tight

Figure contains an axes. The axes contains 2 objects of type line.

Вычислите самый заметный минимум в данных, указав требование минимальной заметности.

TF2 = islocalmin(A,'MinProminence',2);
plot(x,A,x(TF2),A(TF2),'r*')
axis tight

Figure contains an axes. The axes contains 2 objects of type line.

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

свернуть все

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

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

Рабочая размерность, заданная как положительный целочисленный скаляр По умолчанию islocalmin действует вдоль первой размерности, размер которого не равен 1.

Для примера, если A является матрицей, тогда islocalmin(A,1) действует вдоль строк A, вычисление локальных минимумов для каждого столбца.

islocalmin(A,2) действует вдоль столбцов A, вычисление локальных минимумов для каждой строки.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: TF = islocalmin(A,'MinProminence',2)
Опции данных

свернуть все

Точки выборки, заданные как разделенная разделенными запятой парами, состоящая из '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' и один из опций в этой таблице. The 'DataVariables' значение указывает, какие переменные таблицы входа необходимо проверить на локальные минимумы. Тип данных, сопоставленный с указанными переменными, должен быть числовым или logical. Другие переменные в таблице, не заданные 'DataVariables' не работают, поэтому выходы содержат false значения для этих переменных.

ОпцияОписаниеПримеры
Имя переменной

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

'Var1'

"Var1"

Вектор имен переменных

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

{'Var1' 'Var2'}

["Var1" "Var2"]

Скаляр или вектор переменных индексов

Скаляр или вектор табличных переменных

1

[1 3 5]

Логический вектор

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

[true false true]

Указатель на функцию

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

@isnumeric

vartype индекс

Индекс таблицы, сгенерированный vartype функция

vartype('numeric')

Пример: islocalmin(T,'DataVariables',["Var1" "Var2" "Var4"])

Опции обнаружения экстремумов

свернуть все

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

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

Окно Prominence, заданное как разделенная разделенными запятой парами, состоящая из 'ProminenceWindow' и положительный целочисленный скаляр, двухэлементный вектор положительных целых чисел, положительный скаляр длительности или двухэлементный вектор положительных длительностей. Значение задает окно соседних точек, для которого можно вычислить известность для каждого локального минимума.

Когда значение окна является положительным целым скалярным k, то окно центрируется вокруг каждого локального минимума и содержит k-1 соседних элементов. Если k ровен, то окно центрируется вокруг текущего и предыдущего элементов. Если локальный минимум находится в пределах плоской области, то islocalmin обрабатывает всю плоскую область как центральную точку окна.

Когда значение является двухэлементным вектором [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, islocalmin выбирает наименьший локальный минимум и игнорирует все другие локальные минимумы в пределах заданного разделения. Этот процесс повторяется до тех пор, пока не будут обнаружены локальные минимумы.

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

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

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

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

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

свернуть все

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

Типы данных: logical

Известность, возвращенная как векторный, матричный или многомерный массив. P - тот же размер, что и A.

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

Подробнее о

свернуть все

Известность локального минимума

Известность местного минимума (или овраги) измеряет, как овраг выделяется относительно своей глубины и расположения относительно других оврагов.

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

Для вектора xсамая большая известность - самое большее max(x)-min(x).

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

.
Введенный в R2017b