首页 > 编程知识 正文

matlab怎么用for循环,round matlab

时间:2023-05-05 13:06:22 阅读:282876 作者:4247

for语句 当步长为1时,步长可以省略。和前面学的矩阵的初始化类似。

1.for语句针对向量的每一个元素执行一次循环体。
2.退出循环之后,循环变量的值就是向量中最后的元素值。
3.当向量为空时,循环体一次也不执行。

例1:求 1-2+3-4+…+(-1)n-1n

y=0;g=-1;n=input('n=?');for i=1:n g=-g; y=y+g*i;endy //法一 n=input('n=?');x=1:n;y=(-1).^(0:n-1).*x;sum(y) //法二 利用矩阵的方法下面在命令行窗口进行一些解释>> x=1:5x = 1 2 3 4 5>> y=(-1).^(0:4)y = 1 -1 1 -1 1

例2:

a=0;b=1;n=input('n=?');h=(b-a)/n; //自己输入的n,将区间(0,1)均匀分成n份x=a:h:b;f=sqrt(1-x.*x); //求每个题型的上底和下底s=[]; //先建立一个空矩阵for k=1:n t=(f(k)+f(k+1))*h/2; //求每个小梯形的面积 s=[s,t]; //将每个小梯形的面积t加在矩阵s中endpai=4*sum(s)

将该脚本文件命名为getSum3,在命令行窗口进行测试:

>> getSum3n=?1000pai = 3.1416

例3:

s=0;n=input('n=?');for i=1:n x=rand(1); y=rand(1); if x^2+y^2<=1 s=s+1; endendpai=s/n*4

按照 Matlab的定义,
for语句的循环变量也可以是一个列向量,其格式为:
for 循环变量=矩阵表达式
   循环体语句
end

在Matlab中,二维数组是以列优先的,在前面一维数组中,一列只有一个元素,所以依次向后走,如果是一个二维数组,也是有几列循环几次,不过二维数组中循环一次中变量中的元素有多个。

A=[1,2,3,4]; //一维数组B=[1;2;3;4]; //二维数组for i=A disp('test'); disp(i);endfor i=B disp('test'); disp(i);end

脚本文件test.m如上,下面在命令行窗口进行测试:

>> testtest 1test 2test 3test 4test 1 2 3 4 while循环

格式:
while 条件
   循环体语句
end

例4:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

sum=0;n=0;disp('请依次输入数据,直到输入0时为止:');x=input(''); //input函数的是两个,可以省去数据类型的限制参数而省去一个参数,但必须要有一个while x~=0 //如果输入不需要有任何提示信息,单引号之间不输入内容就行。 sum=sum+x; n=n+1; x=input('');endif n>0 sum ave=sum/nend

脚本文件while1.m如上,下面在命令行窗口进行测试:

>> while1请依次输入数据,直到输入0时为止:1 23560sum = 17ave = 3.4000 break语句和continue语句

例5:求[100,200]之间第一个能被21整除的整数。

for n=100:200 if rem(n,21)~=0 continue end n breakend

这里只是为了演示continue和break的写法,当然有更简单的实现。
这里和C的用法是一样的,注意在switch里面是不需要break的。

循环的嵌套

例6:用筛选法虚心的流沙自然数范围内的全部素数。
即,输入一个自然数m,求不大于m的全部素数。

筛选法求素数的基本思想:要找出2到m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数(不包括5),…,直到再划去不超过根号m的倍数,剩下的就都是素数。

m=input('m=?');p=1:m;p(1)=0;t=fix(sqrt(m)); //其实这里不写也行for i=2:t //直接写for i=2:sqrt(m),因为默认步长为1,如果sqrt(m)为小数的话就到不了 for j=2*i:i:m p(j)=0; endendn=find(p~=0);p(n)

脚本文件while3.m如上,下面在命令行窗口进行测试:

>> while3m=?20ans = 2 3 5 7 11 13 17 19

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。