achievemaxseries.m

来自「在论坛上经常有朋友求关于信号上下包络的程序。 本程序为本人编写的一个matla」· M 代码 · 共 37 行

M
37
字号
% 求极大值算法(极小值很容易类推得出):

% 变量说明
% x:原序列
% n:原序列长度
% i:循环变量
% j:用来记录极大值序列序号
% maxSeries:极大值序列

%注意:当某一点为极大值,且与该点相邻点的数值相同时,关于极大值的理解将会不同
%1. 把这些相邻点都作为极大值(本程序采用这种理解)
%2. 把这些相邻点的第一点作为极大值
%3. 把这些相邻点的最后一点作为极大值

function [maxSeries]=AchieveMaxSeries(x)
n=length(x);
j=0;

%处理第一点
if (x(1)>=x(2))
    j=j+1;
    maxSeries(j)=x(1);
end

% 处理中间点
for i=2:n-1    
    if ((x(i)>=x(i-1)) && (x(i)>=x(i+1)))
        j=j+1;
        maxSeries(j)=x(i);
    end
end

% 处理最后一点
if (x(n)>=x(n-1))
    j=j+1;
    maxSeries(j)=x(n);
end

⌨️ 快捷键说明

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