maxmin1.m

来自「HILBERT-HUANG TANSFORM 进行曲线拟和时求信号极大极小值的两」· M 代码 · 共 39 行

M
39
字号
function [max_x min_x max_I min_I]=maxmin1(x)
%求数列的极大极小值及其位置
n=length(x);
if n<=2
    error;
end
max_I=find(diff(sign(diff(x)))==-2)+1 ;      %局部极大值坐标点
max_x=x(find(diff(sign(diff(x)))==-2)+1);    %局部极大值    
min_I=find(diff(sign(diff(x)))==2)+1  ;      %局部极小值
min_x=x(find(diff(sign(diff(x)))==2)+1) ;    %局部极小值坐标点   
output=[];

%第二种方法,实行比较慢

%function [max_x min_x max_I min_I]=maxmin2(x)
%求数列的极大极小值及其位置
%N=length(x);
%if N<=2
 %   error;
%end
 %  max_x=zeros(N);
  % min_x=zeros(N);
%用差分法求信号极大极小值
%for i=2:N-1 
 % if (x(i)-x(i-1))*(x(i)-x(i+1))>0
  %   if (x(i)>x(i-1))&(x(i)>x(i+1))
   %     max_x(i)=x(i);              %局部极大值
    % else
     %   min_x(i)=x(i);              %局部极小值
     %end
   %end
%end
%[max_I]=find(max_x);
%[min_I]=find(min_x);
%max_I=max_I';
%min_I=min_I';
%max_x=x(max_I);
%min_x=x(min_I);
%output=[];

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?