您的位置:首页 > 编程语言 > MATLAB

matlab中for循环的循环变量在循环体中不能改变的问题

2015-06-03 20:00 337 查看

matlab中for循环的循环变量在循环体中不能改变的问题

最近一直在写java,写习惯了,发现写matlab还是挺不习惯的,由于本人是通信专业的学生,因此,也就避免不了要做一些仿真,也就避免不了要写了一些matlab程序,例如:我们无论是在java中还是C/C++中的数组的某个元素的引用的形式如下:

b=a[i];//注意是中括号[]


但是在matlab中,是这样:
b=a(i)
;小括号的有没有

每次在matlab中关于数组都写错呀,真心改不过来呀,哎

这也就算了,最近在项目中每当我检测到一个我想要的元素之后我要直接跳到这个点后面的N个元素再进行检测,发现根本不行呀。这是因为在for循环的循坏体中居然不能改变循环变量呀,例子程序如下:

a=[1,2,3,9,6,9,5,6,8,2,4,9,3];
[m,n]=size(a);
k=0;
for i=2:n-1
    i
    if (a(i-1)<a(i)&a(i)>a(i+1)&a(i)>8)
        k=k+1;
        i=i+5;%跳过5个数再进行检测       
    end   
end


上面的程序就是想把中间那个9不检测出来而写的一个例子程序,但是利用
i=i+5;
就是跳不过去呀,我的妈呀,居然不行呀,统计的结果

k=3


而不是
k=2
呀,我真的受不了了呀,不知道matlab为什么这样设计呀,可是,可是,我在java、C、C++中都是可以这样的呀;真的很头疼;作为程序员,发牢骚是可以的,但是我们还是要解决问题的,于是,在matlab中不能这样的原因如下:


for循环变量i会取哪些值,是第一次进入循环时就决定了的。无论在循环中做什么事都不会改变循环的起始,中止,或步长值。

因此,当你需要这样做的时候,你需要使用while循环来实现



总结

既然matlab这样设计了,我们也不能改变什么,只能自己小小抱怨下,自己再慢慢调整就好了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: