matlab 一维列向量次大值 怎么求A为一维列向量,plot(A)后需要求得图形中的一个波谷的坐标(非最小值),相邻的两个波峰刚好是最大值和次大值.

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/29 21:07:41
matlab 一维列向量次大值 怎么求A为一维列向量,plot(A)后需要求得图形中的一个波谷的坐标(非最小值),相邻的两个波峰刚好是最大值和次大值.
xՓn@_ :A\ɼB(i"h6mI 4P%8 1}]8'J/=س;3|8 d<ÖF1TP*d}>xZ!G*fL /2UK[^,p[7y"uEFKsLhI|7礥i0yUg]7F&Ts鐻 C%`L8A͢hj?(>5f?%WT1} Hۄ}rq]IR2BAO (HU#*vt:@kV qxf\zSUX4{>!-PVgmHYkLf/RDVS7ȥcƵ~I|3&Ʈ;_hBݲ';L0D;B`+(+A?Gٕ寯3Bo.$dك×t,I/(5ݪ1H.X+ 1`|Y{ޮbF@.Oxc

matlab 一维列向量次大值 怎么求A为一维列向量,plot(A)后需要求得图形中的一个波谷的坐标(非最小值),相邻的两个波峰刚好是最大值和次大值.
matlab 一维列向量次大值 怎么求
A为一维列向量,plot(A)后需要求得图形中的一个波谷的坐标(非最小值),相邻的两个波峰刚好是最大值和次大值.

matlab 一维列向量次大值 怎么求A为一维列向量,plot(A)后需要求得图形中的一个波谷的坐标(非最小值),相邻的两个波峰刚好是最大值和次大值.
Ar=[min(A)-1 A];Ar(end)=[];%将A循环右移
Al=[A min(A)-1];Al(1)=[];%将A循环左移
B=find((A>Ar)&(A>Al)==1)%找出所有的波峰,由于第十八个元素和第十九个相等,所以结果体现不出来,但无关紧要
peak=A(B)
[peak_max,peak_sn]=max(A(B))%找出最大值在波峰数组B内的序号,为找次大波峰做准备
peaksub_sn=B(find(A(B)==(max(peak(peak_sn-1),peak(peak_sn+1)))))%找次大波峰,这个序号是原数组的序号
trough=min(A(peaksub_sn:B(peak_sn)))%找出次大波峰和最大波峰之间的最小值
find(trough==A)%提取该波谷的位置