|
没错多点重覆要出问题, 太晚累了, 明天有空再想想!
目前没想到什么好方式, 先用了循环处理了, 请LZ试试看! 不知是否有考虑完善
y=[ 3 1 4 4 4 6 6 6 2]; find_max(y)
y=[ 3 1 4 4 4 6 6 6 6 7 7 8]; find_max(y)
y=[ 3 3 3 3]; find_max(y)
y=[ 3 2 3 3 2 1 2 2 3 3 2 1 ]; find_max(y)
y=[ 3 4 3 3 2 1 2 2 3 3 2 1 ];find_max(y)-
- function imax=find_max(y)
- %y=[ 3 1 4 4 4 6 6 6 2];
- ny=length(y); imax=[]; jmax=1; ii=2;
- while ii<=ny
- if isempty(jmax), if y(ii)>y(ii-1), jmax=ii; end
- else
- if y(ii)<y(jmax), imax=[imax,jmax]; jmax=[]; elseif y(ii)>y(jmax), jmax=ii; end
- end
- ii=ii+1;
- end
- if ~isempty(jmax), imax=[imax,jmax]; end
- plot(y,'b'); hold on; plot(imax,y(imax),'r*'); hold off
复制代码
[ 本帖最后由 ChaChing 于 2009-12-14 01:30 编辑 ] |
|