Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-05-20, 10:46   #1
whiran
初级会员
 
注册日期: 2008-05-16
年龄: 39
帖子: 1
声望力: 0
whiran 正向着好的方向发展
默认 向高手请教!帮我解释解释

你看看这个小程序,在matlab下编的,基本上是求极值位置的一个程序,你再试试。
%求极大值;

% 平滑;
for i=3:2043
a4(i)=(a4(i-2)+a4(i-1)+a4(i)+a4(i+1)+a4(i+2))/5.0;
end
for i=3:2045
a4(i)=(a4(i-2)+a4(i-1)+a4(i)+a4(i+1)+a4(i+2))/5.0;
end
max=1;
j=1;


for i=3:2043
datafilt(i)=(datafilt(i-2)+datafilt(i-1)+datafilt(i)+datafilt(i+1)+datafilt(i+2))/5.0;
end
for i=3:2045
datafilt(i)=(datafilt(i-2)+datafilt(i-1)+datafilt(i)+datafilt(i+1)+datafilt(i+2))/5.0;
end
max=1;
j=1;
%求极值;


for i=500:1500
if(a4(i)>a4(i-1)&&a4(i)>a4(i+1)&&a4(i+1)>a4(i+2)&&a4(i+2)>a4(i+3)&&a4(i-1)>a4(i-2))
max(j)=i;
j=j+1;
end
end
maxramda=ramda(max);%极值点对应波长;
nummax=length(max);%极值点个数;
hold on;
plot(ramda(max),a4(max),'.r');%极值点对应图;

for i=300:1800
if(datafilt(i)>datafilt(i-1)&&datafilt(i)>datafilt(i+1)&&datafilt(i+1)>datafilt(i+2)&&datafilt(i+2)>datafilt(i+3)&&datafilt(i-1)>datafilt(i-2))
max(j)=i;
j=j+1;
end
end
maxramda=ramda(max);%极值点对应波长;
nummax=length(max);%极值点个数;
hold on;
plot(ramda(max),datafilt(max),'.r');%极值点对应图;
whiran 当前离线   回复时引用此帖
旧 2008-05-23, 10:15   #2
kewin
初级会员
 
注册日期: 2008-03-23
年龄: 42
帖子: 18
声望力: 18
kewin 正向着好的方向发展
默认 我试的结果

??? Undefined function or variable "a4".
kewin 当前离线   回复时引用此帖
旧 2008-05-23, 20:05   #3
Just For Matlab
初级会员
 
注册日期: 2008-05-23
年龄: 38
帖子: 5
声望力: 0
Just For Matlab 正向着好的方向发展
微笑 请帖主补充信息

你的程序我基本上明白,但我还有几个问题需要你补充:
1、你所求的是什么问题
2、求极值点前你对波形采样了没,如果采样了的话,请把采样的值也附加给出。
3、程序中的 max,ramda,,maxramda,a4,datafilt,j都表示什么含义,请详细说明一下
:lol:
Just For Matlab 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
【求助】白噪声怎么产生? zhangxiaoqin-88 MATLAB论坛 0 2007-07-08 13:13


所有时间均为北京时间。现在的时间是 11:21


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.