MatLab 函数 fingpeaks 对一维数组求解局部极大和极小值

徐海蛟老师课堂教学

举例说明。

clc; clear;% 清屏清空变量

figure('Color', 'w');% 背景:白色

Data = [1 -2 3 -4 5 -6 7 8 5 4 1 2 -3 -1 -5 9 7 -6 5];

plot(Data, '-s', 'LineWidth',2);% 画曲线,线宽为2

grid on;% 画网格线

[Pks, Locs] = findpeaks(Data);% 极大值Pks, 对应下标Locs

[Pks2, Locs2] = findpeaks(-Data);

Pks2 = -Pks2;% 极小值Pks2, 对应下标Locs2

则 Pks = [3 5 8 2 -1 9],

  Pks2 = [-2 -4 -6 1 -3 -5 -6]。