原文地址:matlab 中序列求极值的方法作者:红枫叶 此问题重复讨论的势头见长,因此做个小结.这类问题的基本思路都一致. 利用数学里驻点和极值点定义来求. --ilxy的方法 -  aa=randperm(20) aa = 16 13 17 7 19 18 14 8 11 2 20 3 6 4 15 1 12 10 5 9  bb=intersect(find(diff(aa)0)+1,find(diff(aa)0)) bb = 3 5 9 11 13 15 17 - -hyperelastic 的方法- n = 100; aa=randperm(n); index = findaa(2:n-1)aa(1:n-2))+(aa(2:n-1)aa(3:n==2)+1; bb = aa(index); -bainhome 的方法 -- a=rand(1,100); find(diff(sign(diff(a0)+1  以上代码都是求极大值,略微变换后可以得到极小值.出自:中华钢结构论坛 eight版主给的方法  d=diff(x); n=length(d); d1=d(1:n-1); d2=d(2:n); indmin=find(d1.*d20 & d10)+1; indmax=find(d1.*d20 & d10)+1;  虽然基本原理一样,不过几位的方法都各有特色.都是前辈们智慧的结晶,在此深表感谢. 小代码体现大智慧的典范! 我在实验中所搜到的方法,可惜这次没搜索到: 假设待求的数列为data,则find(diff(sign(diff(data== - 2)+1 可求极大值.find(diff(sign(diff(data== 2)+1 可求极小值.