For和While在C和MATLAB中的区别——MATLAB的大坑
2014-05-04 14:40
148 查看
For和while是常见的循环关键字,在许多语言中都是通用的。但是想必不是所有人,都被其中的区别困扰过,尤其是MATLAB“程序员”。
这段代码的运行结果是
i=
5
i在递增,而MATLAB在每次循环都调用了length(x),因此length(x)在递减。
i: 1 2 3 4 5
length(x) 7 6 5 4 3
当i=5时跳出循环。
再看for这个大坑。测试代码为:
运行结果是这样的:
??? Error: File: Untitled.m Line: 2 Column: 7
Unexpected MATLAB operator.
程序只计算了length(x)一次,因此每次进入循环是i都要与最初的7=length(x)比较,因此报了ArrayOutOfRange的错误。
事后诸葛亮:编程的时候,千万不能想当然。
x=[1,2,3,4,5,6,7]; i=1; while i<=length(x) x(i)=[]; i=i+1; end i
这段代码的运行结果是
i=
5
i在递增,而MATLAB在每次循环都调用了length(x),因此length(x)在递减。
i: 1 2 3 4 5
length(x) 7 6 5 4 3
当i=5时跳出循环。
再看for这个大坑。测试代码为:
x=[1,2,3,4,5,6,7]; for i=1:length(x) x(i)=[]; end i
运行结果是这样的:
??? Error: File: Untitled.m Line: 2 Column: 7
Unexpected MATLAB operator.
程序只计算了length(x)一次,因此每次进入循环是i都要与最初的7=length(x)比较,因此报了ArrayOutOfRange的错误。
事后诸葛亮:编程的时候,千万不能想当然。
相关文章推荐
- C语言中:while与for循环的区别
- 1.for(;;) 与 while(true) 的 区别
- for(;;)与while(1)的区别
- 【C语言天天练(一)】while(1)死循环与for(;;)死循环的区别
- javascript 循环语句 while、do-while、for-in、for用法区别
- 关于for(;;)和while(1)/while(true)区别
- for和while 的特点与区别
- matlab 条件删除某元胞元素时不能使用for,而应该使用while进行遍历所有元胞
- for与while的区别
- java学习10--循环结构-for与while区别、无限循环、循环应用
- 统计思想的综合例子,while和for的区别典型例子
- while(1) 与for(;;) 的区别
- Java中for、while、do while三种循环语句的区别介绍
- for(;;) 和 while(true) 的区别
- for循环与while循环的区别
- for和while的区别与面试点
- 无限循环 while(1) 和 for(; ;) 有何区别?哪个更好?
- for与while的区别
- while for 区别
- for循环与while循环的区别