MATLAB 循环
-
循环
循环在某些情况下,您需要多次执行一个代码块。通常,语句是按顺序执行的。首先执行函数中的第一条语句,然后执行第二条,依此类推。编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句允许我们多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式-MATLAB提供了以下类型的循环来处理循环需求。 -
while 循环
while 循环重复执行条件为true的语句。语法-while <expression> <statements> end
创建一个脚本文件并输入以下代码-
尝试一下a = 10; % while loop execution while( a < 20 ) fprintf('value of a: %d\n', a); a = a + 1; end
运行文件时,它将产生以下结果-value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19
-
for 循环
语法-for index = values <program statements> ... end
values 具有以下格式 −- initval:endval - 将索引变量从initval到endval递增1,并重复执行程序语句,直到index大于endval。
- initval:step:endval - 每次迭代将索引值增加step的值,如果step为负,则将索引的值减小。
- valArray - 在每次迭代时从数组valArray的后续列创建列向量索引。 例如,在第一次迭代中,index = valArray(:,1)。 该循环最多执行n次,其中n是valel的列数,由numel(valArray,1,:)给出。 输入valArray可以是任何MATLAB数据类型,包括字符串,单元格数组或结构。
创建一个脚本文件并输入以下代码-
尝试一下for a = 10:20 fprintf('value of a: %d\n', a); end
运行文件时,它将产生以下结果-value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19 value of a: 20
示例2-
尝试一下for a = 1.0: -0.1: 0.0 disp(a) end
运行文件时,它将产生以下结果-1 0.90000 0.80000 0.70000 0.60000 0.50000 0.40000 0.30000 0.20000 0.10000 0
示例3-
尝试一下for a = [24,18,17,23,28] disp(a) end
运行文件时,它将产生以下结果-24 18 17 23 28
-
嵌套循环
MATLAB允许在另一个循环中使用一个循环。以下部分显示了一些示例来说明这一概念。MATLAB中嵌套的for循环语句的语法如下-语法for m = 1:j for n = 1:k <statements>; end end
MATLAB中嵌套while循环语句的语法如下-语法while <expression1> while <expression2> <statements> end end
让我们使用嵌套的for循环显示从1到100的所有质数。创建一个脚本文件并键入以下代码-
尝试一下for i = 2:100 for j = 2:100 if(~mod(i,j)) break; % if factor found, not prime end end if(j > (i/j)) fprintf('%d is prime\n', i); end end
运行文件时,它将产生以下结果-2 is prime 3 is prime 5 is prime 7 is prime 11 is prime 13 is prime 17 is prime 19 is prime 23 is prime 29 is prime 31 is prime 37 is prime 41 is prime 43 is prime 47 is prime 53 is prime 59 is prime 61 is prime 67 is prime 71 is prime 73 is prime 79 is prime 83 is prime 89 is prime 97 is prime
-
循环控制语句
循环控制语句从其正常顺序更改执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。MATLAB支持以下控制语句。 -
break 声明
break语句终止for或while循环的执行。在break语句之后出现的循环中的语句不会执行。在嵌套循环中,中断仅从发生中断的循环退出。控制在该循环结束后传递给该语句。创建一个脚本文件并输入以下代码-
尝试一下a = 10; % while loop execution while (a < 20 ) fprintf('value of a: %d\n', a); a = a + 1; if( a > 15) % terminate the loop using break statement break; end end
运行文件时,它将产生以下结果-value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15
-
continue 声明
continue语句用于将控制传递给for或while循环的下一个迭代。MATLAB中的continue语句的工作方式与break语句类似。但是,“continue”不是强制终止,而是强制执行循环的下一次迭代,从而跳过两者之间的任何代码。创建一个脚本文件并输入以下代码-
尝试一下a = 9; %while loop execution while a < 20 a = a + 1; if a == 15 % skip the iteration continue; end fprintf('value of a: %d\n', a); end
运行文件时,它将产生以下结果-value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 16 value of a: 17 value of a: 18 value of a: 19 value of a: 20