fextrema.m
来自「这是一个关于hht变换很有用的工具箱」· M 代码 · 共 67 行
M
67 行
function [all_x, all_y] = fextrema(data_x, data_y)
% The function FEXTREMA returns all local extrema and their coordinates in the order found.
%
% Calling sequence-
% [all_x, all_y] = fextrema(data_x, data_y)
%
% Input-
% data_x - input vector of coordinates
% data_y - input vector of values
% Output-
% all_x - vector that specifies the coordinates of max and min
% values in the order found
% all_y - corresponding max and min values
% Karin Blank (NASA GSFC) September 29, 2003 Initial
%----- Initialize values
all_x = [];
all_y = [];
Ymax = 0;
Ymin = 0;
Xmax = 0;
Xmin = 0;
flagmax = 0;
flagmin = 0;
for i=2:length(data_y)-1;
%----- Find local maximum
if ((data_y(i) > data_y(i-1)) & (flagmax == 0))
flagmax = 1;
Xmax = data_x(i);
Ymax = data_y(i);
end
if((data_y(i) < data_y(i+1)) & (flagmax == 1))
flagmax = 0;
end
if((data_y(i) > data_y(i+1)) & (flagmax == 1))
flagmax = 0;
all_y = [all_y, Ymax];
all_x = [all_x, Xmax];
end
%----- Find local minimum
if((data_y(i) < data_y(i-1)) & (flagmin == 0))
flagmin = 1;
Xmin = data_x(i);
Ymin = data_y(i);
end
if((data_y(i) > data_y(i+1)) & (flagmin == 1))
flagmin = 0;
end
if((data_y(i) < data_y(i+1)) & (flagmin == 1))
flagmin = 0;
all_x = [all_x, Xmin];
all_y = [all_y, Ymin];
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?