exponenta event banner

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.

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

свернуть все

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

Типы данных: 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. В расписаниях всегда используется вектор времени строки в качестве точек выборки. Чтобы использовать различные точки выборки, необходимо отредактировать расписание так, чтобы время строки содержало нужные точки выборки.

Пример: islocalmax(T,'SamplePoints',0:0.1:10)

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

Переменные таблицы для работы, указанные как пара, разделенная запятыми, состоящая из 'DataVariables' и один из вариантов в этой таблице. '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

Окно выделения, указанное как пара, разделенная запятыми, состоящая из '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