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这样设计了,我们也不能改变什么,只能自己小小抱怨下,自己再慢慢调整就好了相关文章推荐
- matlab在macbook下的详细配置以及可能遇到的所有问题的解决方式(success testing)
- matlab下配置libsvm
- Matlab符号微积分练习
- 【matlab】如何画分段函数的图像
- 【matlab】function在MATLAB中怎么用
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)
- MATLAB学习笔记(九)
- matlab查找指定文件夹下文件(附汉字和标点符号读取方法)
- 基本遗传算法(SGA)的MATLAB实现
- vs2005虚拟机安装 matlab安装
- MATLAB 常见问题
- Matlab符号微积分笔记
- kNN文本分类器实现
- Matlab画曲线
- ubuntu上matlab2014a修改成windows方式快捷键
- matlab mesh visualization
- Matlab 的reshape函数
- matlab做garch模型
- 基于Hough 变换的直线检测(Matlab实现)
- MATLAB中去掉字符串中的空格,num2str引发的问题