for 循环语句
for语句作用是按照预先设定的循环步骤重复执行某语句段, 其语法:
for 循环控制变量
=存储着该变量依次所取值的一个向量
循环语句块,本块重复执行的次数由上方向量的长度决定, 每次执行, 循环控制变量依次取该向量中的值.
end
注意, 如果你matlab的for 循环语句有其独有的特点, 它使用一个向量来控制循环, 循环次数由向量的长度来决定,而每次循环都依次从向量中取值. 这使得Matlab循环更灵活多样, 其循环变量取值可以不按照特定的规律; 但是另一方面, Matlab的for循环也有独特的限制, 当次循环中改变循环变量赋值, 不会代入下次循环, 所以除非在其中用break提前退出,Matlab循环的次数是预先定好的.
举个例子: for a=1:2:7 , 将循环4次, a的取值依次是1, 3, 5, 7.
另一个例子: for a=[1, 5, 3, 4, 6], 这个循环将被执行5次, 循环控制变量a的取值依次为: 1, 5, 3,4, 6.
如果还对for循环这个特性不太熟悉, 试试下面这段Matlab代码:
for a=[1 5 3 4 6]
disp(['第', num2str(find(a==[1 53 4 6])) , '次循环, a的取值为: ',num2str(a)] );
end
While循环
与for循环不同, while循环不预先指定好循环次数, 只要符合条件循环就一直执行下去, while语句的语法:
while 判断条件
循环语句块
end
此处的'判断条件'和if语句中的那个一样, 要求这个变量或者表达式最终得到一个逻辑型标量, 每次循环之前,while语句会判断这个条件是否满足, 如果满足则开始循环模块, 否则跳过整个循环语句.
在循环语句块中控制循环退出有两种办法, 其一是直接或间接地改变'判断条件'的值, 使之为'false',其二是在循环块中执行'break' 语句直接退出循环.
一个例子, 每次循环变量a都将增加1, 我们欲控制使a大于10时终止循环, 下面分别采用上述提到的两种方法控制循环.
approach 1
a=0;
while a<=10
a=a+1; disp(a);
end
approach 2:
a=0;
while 1
%由于判断条件是'1', 永远为'true', 所以如果不在循环块中设置跳出条件,循环将永久性进行下去!
a=a+1; disp(a);
if a>=10
break;
end
%上句含义是如果a大于等于10就退出循环
end
break
'break' 用在循环语句块中, 只要执行到break语句, Matlab就会退出该循环, 但是它只能退出一层循环,假如现在有内外两层循环, 在内层循环中执行break只会退出内层的循环.
break常和判断语句一起是使用.
Continue 语句
它的作用是用来循环块中, 跳过当次循环中该语句之后的其它语句, 继续下一次循环. 注意它和break的不同,break是彻底退出循环, 而continue只是跳过本次循环的中该语句之后的那些语句, 下一次轮循环照常执行
return 语句
从M函数回去