logo资料库

matlab极值查找程序.doc

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
matlab极值查找程序
matlab 极值查找程序 %n 迭代次数,data 是一维输入,peakval 是找到峰值,peakcoor 是峰值所在位 置 function [peakval,peakcoor] = peakfinder(data,n) premaxindexbox=find(diff(sign(diff(data)))==-2)+1; premaxvaluebox=data(premaxindexbox);%极大值 if n==1 %额外情况:为防止机制的漏点而设置 originpeakval=max(data); originpeakcoor=find(data==originpeakval); %合并 peakcoor=[premaxindexbox;originpeakcoor]; peakval=[premaxvaluebox;originpeakval]; %绘图 plot(data);hold on plot(peakcoor,peakval,'ro','LineWidth',1); hold off else for i=2:n x)))==-2)+1;%在最大值中再次找最大值,得到序列号 nextmaxindex=find(diff(sign(diff(premaxvaluebo nextmaxindexbox=premaxindexbox(nextmaxindex);% 依据序列号找到第一列对应值,即二次极值的坐标 nextmaxvaluebox=premaxvaluebox(nextmaxindex);% 依据序列号找到第二列对应值,即二次极值的值 if i
peakval=[nextmaxvaluebox;originpeakval]; %绘图 plot(data);hold on plot(peakcoor,peakval,color,'LineWidth',size); hold off; end
分享到:
收藏