warden 发表于 2012-11-1 21:35

大神们帮我看看我的循环在哪儿出问题了

本帖最后由 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

ChaChing 发表于 2012-11-1 22:45

得出数据指的是c吗?
c=a(i+3); 不是当然仅只有一个数?

warden 发表于 2012-11-2 09:26

ChaChing 发表于 2012-11-1 22:45 static/image/common/back.gif
得出数据指的是c吗?
c=a(i+3); 不是当然仅只有一个数?

我的本意是把所有满足条件的a中的值找出来,然后放在c里面。。。但是我那个怎么循环不起来呢?

happy 发表于 2012-11-2 09:35

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

warden 发表于 2012-11-2 09:52

happy 发表于 2012-11-2 09:35 static/image/common/back.gif
运行不会有错的,也不是没有循环,是你程序写的有问题
可以修改如下:

嗯,确实是,多谢多谢~拜服拜服~

warden 发表于 2012-11-5 11:53

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的点,说明滤波去噪的效果并不好,但是我又不知道程序哪儿有什么问题。。。



happy 发表于 2012-11-12 08:40

warden 发表于 2012-11-5 11:53 static/image/common/back.gif
a=load('*****************\houduan\2-1.lvm');                                    %导入实验采样数据
...

没有明白你的意思

去掉的是6.1~6.4的点,当然还可以找到5.8的点了?

warden 发表于 2012-11-12 11:42

happy 发表于 2012-11-12 08:40 static/image/common/back.gif
没有明白你的意思

去掉的是6.1~6.4的点,当然还可以找到5.8的点了?

已经解决,呵呵,还是多谢~~~{:{05}:}
页: [1]
查看完整版本: 大神们帮我看看我的循环在哪儿出问题了