extr.m

来自「该程序是MATLAB源程序」· M 代码 · 共 39 行

M
39
字号


function [inmin,inmax,nzer]=extr(x)
nzer=1;nmin=1;nmax=1;
for g=2:(length(x)-1)
    if (x(g-1)*x(g)<0)|(x(g)*x(g-1)==0)&(x(g)==0)
       nzer=nzer+1;
    elseif (x(g-1)*x(g)<0)|(x(g-1)*x(g)==0)&(x(g-1)==0)
        nzer=nzer+1;
    end
    if (x(g-1)<x(g))&(x(g)<x(g+1))
        continue;
    elseif (x(g-1)>x(g))&(x(g)>x(g+1))
        continue;
    elseif (x(g-1)<x(g))&(x(g)>x(g+1))
        inmax(nmax)=g;
        nmax=nmax+1;
    elseif (x(g-1)>x(g))&(x(g)<x(g+1))
        inmin(nmin)=g;
        nmin=nmin+1;
    end
end
nzer
inmin
inmax
plot(1:length(x),x,'k')
hold on
plot(inmin,x(inmin),'g.')
hold on
plot(inmax,x(inmax),'r.')
hold on
envmin = interp1(inmin,x(inmin),1:length(x),'spline');
envmax = interp1(inmax,x(inmax),1:length(x),'spline');
plot(1:length(x),envmin,'y-')
hold on
plot(1:length(x),envmax,'c-')
hold on 
plot(1:length(x),((envmax+envmin)/2),'m-')
       

⌨️ 快捷键说明

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