珠海企业网站推广服务,域名后缀一览表,宿迁网站建设推广公司,黄冈市建设信息网站一、for end语句 在该语法中#xff0c;循环变量是用于迭代的变量名#xff0c;它会在每次循环迭代中从向量或矩阵中取出一列的值。数值向量或者矩阵则表示了循环变量可以取值的范围#xff0c;通常根据实际需要事先给定。一旦循环变量遍历完数值向量或者矩阵中的所有值循环变量是用于迭代的变量名它会在每次循环迭代中从向量或矩阵中取出一列的值。数值向量或者矩阵则表示了循环变量可以取值的范围通常根据实际需要事先给定。一旦循环变量遍历完数值向量或者矩阵中的所有值循环就会结束。
注如果是矩阵的话则会取出矩阵的一列值。
例求和代码不用sum函数
x [5 8 9 1 4 3 7]
s 0; % 初始化最后的求和结果为0
for ii xs s ii;
end
disp(s)
思考如果x是一个列向量左侧的代码输出的s是什么应该如何修改代码
方法一
增加条件语句判断是否为列向量如果是的话将列向量转置
if size(x,2)1 %%列数是不是为1列xxx;
else xxx;
end方法二妙
x ( : ) 列举所有的值为一列无论x是行向量还是列向量都变成一列
在进行转置即可
xx (x(:))
例2
计算当n等于100时下面式子的结果:
写成求和形式
n100;
y0;
for k1:nyy1/(k*k);
end
disp(y)
例3
3计算当n从1一直取到100时上一小问式子的计算结果并将计算结果保存到一个长度为100的行向量S中S中第i个元素表示y(i)的结果。
Szeros(1,100);
for n1:100y0;for k1:nyy1/(k*k);endS(n)y;
end
disp(S)
例4 n30;
fones(1,n);
for k1:nf(k)f(k-1)f(k-2);
end
Fnf(n);
disp(Fn)for循环注意事项
1若for语句后面的向量或者矩阵为空则循环一次也不会被执行。
2for语句后面的向量或者矩阵只会在循环开始时使用一次向量或者矩阵元素一旦确定将不会
再改变。即使你在循环体中改变向量或者矩阵的值循环变量的值也不改变。
x 1:4;
for ii xx [0 0 0 0];disp(ii)
end
disp(x)
3可以在循环体中修改循环变量的值但当程序执行流程再次回到循环开始时循环变量会自
动恢复成向量或者矩阵的下一列元素。
二、while end 语句 a(1)1;
a(2)1;
n2;
while a(n)9999nn1;a(n)a(n-1)a(n-2);
end
disp(a(end));小tips
1如果不小心执行了一个无限循环即永远不会自行结束的循环又称死循环
可以按下 CtrlC 停止执行程序。
2while后面表达式的计算结果不一定非得是逻辑值1或0。如果表达式的计算结果是一个数值常
数则只有当这个常数为非零值时循环才会进行
3若表达式的计算结果是一个数值向量或者矩阵则仅当该向量或矩阵中的所有元素都是非零
数时循环才会进行。