学习了一半了,发现一个好网站,就是我想写这篇博客用的,网络真是个好东西!纪念下国庆啦
网址:http://www.yiibai.com/matlab/matlab_for_loop.html
----分割线------------------------
今天在测试时发现一个很有趣的问题:
文件命名是不能用关键字的,我命名一个文件为for.m,结果,无论如何都提示有错:
Error : Incomplete or misformed expression or statement.
最后先换一个名称就好了,记得这个错误吧。
正文:
for类型的第一种用法:
创建一个脚本文件,并键入下面的代码:
%脚本文件:test.m %for循环的三种类型 使用举例 % 定义变量 % ii ---循环变量,也就是循环次数 clc;clear; for ii = 1:10 fprintf('value of a: %d\n', ii); end fprintf('跳出循环后,value of a: %d\n', ii);
结果:
在这种情况下,控制表达式产生了一个1ⅹ10数组,所以语句1到n将会被重复执行10次。循环系数ii在第一次执行的时侯是1,第二次执行的时侯为2,依次类推,当最后一次执行时,循环指数为10。在第十次执行循环体之后,再也没有新的列赋值给控制表达式,程序将会执行end语句后面的第一句。注意在循环体在最后一次执行后,循环系数将会一直为10。
for类型的第二种用法:
创建一个脚本文件,并键入下面的代码:
%脚本文件:test.m %for循环的三种类型 使用举例 % 定义变量 % ii ---循环变量,也就是循环次数 clc;clear; for ii = 1:2:10 fprintf('value of a: %d\n', ii); end fprintf('跳出循环后,value of a: %d\n', ii);
结果:
在这种情况下,控制表达式产生了一个1ⅹ5数组,所以语句1到n将会执行5次。循环指数ii在第一次执行时为1,第二次执行时为3,依此类推,最后一次执行时为9。在第五次执行循环体之后,再也没有新的列赋值给控制表达式,程序将会执行end语句后面的第一句。注意在循环体在最后一次执行后,循环系数将会一直为9。
for类型的第三种用法:
创建一个脚本文件,并键入下面的代码:
% 定义变量 % ii ---循环变量,也就是循环次数 clc;clear; for ii = [5 9 7] fprintf('value of a: %d\n', ii); end fprintf('跳出循环后,value of a: %d\n', ii);
效果:
在这里,控制表达式是一个直接写出的1ⅹ3的数组,所以语句1到n将会执行3次,循环指数ii在第一次执行时为1,第二次执行时为3,第三次执行时为7。循环指数在循环结束之后一直为7。
最后,比较复杂的例子:
% 定义变量 % ii ---循环变量,也就是循环次数 clc;clear; for ii = [1 2 3; 4 5 6] fprintf('value of a: %d\n', ii); end fprintf('跳出循环后,value of a: %d\n', ii);
此时,
在这里,控制表达式是一个直接写出的2ⅹ3的数组,所以语句1到n将会执行3次,循环指数ii在第一次执行时为列向量[1 3]' ,第二次执行时为[2 5]' ,第三次执行时为[3 6]' 。这个例子说明循环指数可以为向量。
跳出循环后,输出的是一个列向量[3 6]'