MATLAB while循环语句的用法(附带实例)
MATLAB 中的 while 循环在一个逻辑条件的控制下重复执行一组语句的次数不定,匹配的 end 结束语句。
while 循环结构的具体语法形式如下:
一般情况下,表达式的值都是标量值,但是在 MATLAB 中,同样可以运行表达式为数组的情况。只有当表达式为数组且数组所有元素的逻辑值均为真时,while 循环才继续执行命令组。
如果 while 指令后的表达式为空数组,那么 MATLAB 默认表达式的值为假,直接结束循环。
while 循环和 for 循环的区别在于,while 循环结构的循环体被执行的次数是不确定的,而 for 循环中的循环体被执行的次数是确定的。
【实例 1】求 Fibonacci 数列(斐波那切数列)中第一个大于 9999 的元素。在编辑器窗口中编写 M 文件并命名为ex.m。
【实例 2】利用 while 循环求 1+2+...+100 的值。在编辑器窗口中编写 M 文件并命名为ex.m。
while 循环结构的具体语法形式如下:
while expression command endwhile 和 end 之间的命令组称为循环体。MATLAB 在运行 while 循环之前,首先检测 expression 的值,若其逻辑值为真,则执行命令组;命令组第一次被执行完毕后,继续检测 expression 的逻辑值,若其逻辑值仍为真,则循环执行命令组,直到表达式 expression 的逻辑值为假,结束 while 循环。
一般情况下,表达式的值都是标量值,但是在 MATLAB 中,同样可以运行表达式为数组的情况。只有当表达式为数组且数组所有元素的逻辑值均为真时,while 循环才继续执行命令组。
如果 while 指令后的表达式为空数组,那么 MATLAB 默认表达式的值为假,直接结束循环。
while 循环和 for 循环的区别在于,while 循环结构的循环体被执行的次数是不确定的,而 for 循环中的循环体被执行的次数是确定的。
【实例 1】求 Fibonacci 数列(斐波那切数列)中第一个大于 9999 的元素。在编辑器窗口中编写 M 文件并命名为ex.m。
clear a(1) = 1; a(2) = 1; i = 2; while a(i) < 10000 % 当元素小于或等于 9999 时,求下一项 a(i+1) = a(i) + a(i-1); i = i + 1; end [i a(i)]运行 M 文件,输出结果如下:
ans = 21 10946Fibonacci 数列中的第 21 项 10946 是第一个大于 9999 的元素。
【实例 2】利用 while 循环求 1+2+...+100 的值。在编辑器窗口中编写 M 文件并命名为ex.m。
clear i = 1; sum = 0; while i < 101 sum = sum + i; i = i + 1; end sum运行后可得到如下结果:
sum = 5050综上,在无法确定循环次数,或者根本不需要知道循环次数,而只需确定满足什么条件循环不停止的情况下,使用 while 循环比较合理。