大神们帮我看看我的循环在哪儿出问题了
本帖最后由 warden 于 2012-11-1 21:47 编辑我想做用阈值的方法滤除采样噪声,就写了一段循环程序,但是得出数据只有一个数,应该是循环没有循环起来,大家帮我看一下,多谢~~~
a=load('******\houduan\2-1.lvm'); %导入实验采样数据
n=length(a);
for i=1:n-3
b(i)=(a(i)+a(i+1)+a(i+2))/3;
if(a(i+3)-a(i+2)<2*b(i));
c=a(i+3);
end
end
得出数据指的是c吗?
c=a(i+3); 不是当然仅只有一个数? ChaChing 发表于 2012-11-1 22:45 static/image/common/back.gif
得出数据指的是c吗?
c=a(i+3); 不是当然仅只有一个数?
我的本意是把所有满足条件的a中的值找出来,然后放在c里面。。。但是我那个怎么循环不起来呢?
warden 发表于 2012-11-2 09:26 static/image/common/back.gif
我的本意是把所有满足条件的a中的值找出来,然后放在c里面。。。但是我那个怎么循环不起来呢?
运行不会有错的,也不是没有循环,是你程序写的有问题
可以修改如下:
a=load('******\houduan\2-1.lvm'); %导入实验采样数据
n=length(a);
c=[];
for i=1:n-3
b(i)=(a(i)+a(i+1)+a(i+2))/3;
if(a(i+3)-a(i+2)<2*b(i));
c=;
end
end
happy 发表于 2012-11-2 09:35 static/image/common/back.gif
运行不会有错的,也不是没有循环,是你程序写的有问题
可以修改如下:
嗯,确实是,多谢多谢~拜服拜服~
happy 发表于 2012-11-2 09:35 static/image/common/back.gif
运行不会有错的,也不是没有循环,是你程序写的有问题
可以修改如下:
a=load('*****************\houduan\2-1.lvm'); %导入实验采样数据
n=length(a);
c=[];
d=[];
for i=1:n-3
b(i)=(a(i)+a(i+1)+a(i+2))/3;
if(abs(a(i+3)-a(i+2))<0.00000000000000000000000000000000000000005*b(i)); %设置选择条件
c=;
else
c=;
end
end
for m=1:3
d=;
end
e=cat(2,d,c);
e=e';
按照本意,是应该把那些采样噪声点都去掉的(是数值落在6.1~6.4之间),但是经过这程序处理之后还是能在e中找到5.8的点,说明滤波去噪的效果并不好,但是我又不知道程序哪儿有什么问题。。。
warden 发表于 2012-11-5 11:53 static/image/common/back.gif
a=load('*****************\houduan\2-1.lvm'); %导入实验采样数据
...
没有明白你的意思
去掉的是6.1~6.4的点,当然还可以找到5.8的点了? happy 发表于 2012-11-12 08:40 static/image/common/back.gif
没有明白你的意思
去掉的是6.1~6.4的点,当然还可以找到5.8的点了?
已经解决,呵呵,还是多谢~~~{:{05}:}
页:
[1]