10.5for语句

这个for语句使计算循环的迭代次数更加方便。的一般形式for语句如下所示:

对于var=表示
  </body>外循环

这里的</body>代表任何语句或语句列表,表示是任何有效的表达式,并且var可能采取几种形式。通常它是一个简单的变量名或索引变量。如果的值表示是一种结构体,var也可以是具有两个元件的avector。详见在结构体元素上循环在下面

中的赋值表达式for语句的工作方式与Octave的普通赋值语句稍有不同。它不是将表达式的完整结果指定给,而是将表达式的每一列指定给var反过来如果表示是范围、行向量或标量,的值var将是每次执行循环体时的标量。如果var是列向量或amatrix,var将是每次执行循环体时的列向量。

以下示例显示了创建软件包含斐波那契序列前十个元素的向量的另一种方法,这次使用for语句

fib=一(1,10);对于i=3:10 fib(i)=fib(i-1)+fib(i-2);外循环

此代码通过首先计算表达式来工作3:10,以返回从3到10(包括3到10)的值范围。然后变量被赋值了范围的第一个元素,并且循环的主体被执行一次。当到达循环体的末尾时,该范围中的下一个值将赋值给变量,并且再次执行循环体。此过程将继续进行,直到有诺莫尔元素要指定为止。

在Octave中,还可以使用for语句例如,考虑

disp(“在矩阵上循环”)对于i=[1,3;2,4]iendfordisp(“循环在元胞数组上”)对于i={1,“两个”;“三个”,4}iendfor

在这种情况下,变量取矩阵或数组矩阵的列的值。因此,第一个循环迭代两次,返回两个列向量[1;2],后面跟着[3;4],并且类似地用于元胞数组上的循环。这可以扩展到过多维度数组的循环。例如

a=[1,3;2,4];c=猫(3,a,2*a);对于i=c iendfor

在上述情况下,多维矩阵c被重塑为二维矩阵整形(c,行(c),戳(大小(c)(2:端部))然后返回与二维矩阵上的循环相同的行为。

尽管可以重写所有for循环为while循环,Octave语言同时具有这两个语句,因为for循环既不需要打字,也更自然。计算迭代次数在循环中非常常见,更明智的做法是将这种计数视为循环的一部分,而不是在循环内进行相关操作。


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号