我是靠谱客的博主 虚心钥匙,这篇文章主要介绍for循环嵌套,现在分享给大家,希望可以做个参考。

写if语句的时候,if、else等是可以重叠的。也可以在大的if语句里套一个小的if语句。
实际上for循环也是可以嵌套的

例1:写一个脚本输出三行,每行有5个*

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
for i=1:5 fprintf('*') end fprintf('n') %第一行的5*输出后进行换行 for i=1:5 fprintf('*') end fprintf('n') %第二行的5*输出后进行换行 for i=1:5 fprintf('*') end

我们换个思路:首先写出一段循环输出5个*,然后让它循环3次不就行了吗?

复制代码
1
2
3
4
5
6
7
for j=1:3 for i=1:5 fprintf('*') end fprintf('n') end

那么想要控制为a行b列呢?如5行10列:

复制代码
1
2
3
4
5
6
7
8
9
rows = 5 columns = 10 for j=1:rows for i=1:columns fprintf('*') end fprintf('n') end

在这里插入图片描述

例2:编写第一行有一个*,每行多一个,一共有10行的脚本

复制代码
1
2
3
4
5
6
7
8
i = 0 for j=(1:10) %外循环,让内循环每次加1,循环10for i=1:(i+1) %内循环,i=1:1时输出1*,i=1:2时输出2*,以此类推循环着输出* fprintf('*') end fprintf('n') end

在这里插入图片描述
与上面的代码的逻辑类似:

复制代码
1
2
3
4
5
6
7
8
row = 10 %行数可以随意改变 for j=1:row %外循环,j从1依次分别取到10 for i=1:j %内循环,i=1:1时输出1*,i=1:2时输出2*,以此类推循环着输出* fprintf('*') end fprintf('n') %每输出一次*之后就换行 end

在这里插入图片描述

例3:写一个m×n的乘法矩阵,其中的元素就等于它的行数乘以列数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
% matrix = rows * columns % matrix(i,j) = i * j %如:rows = 4; columns = 5; % 1×1 1×2 1×3 1×4 1×5 % 2×1 2×2 2×3 2×4 2×5 % 3×1 3×2 3×3 3×4 3×5 % 4×1 4×2 4×3 4×4 4×5 rows = 4; columns = 5; matrix=NaN(rows,columns) for j=1:rows for i=1:columns matrix(j,i) = j*i end end

在这里插入图片描述

例4:写一个乘法口诀表

复制代码
1
2
3
4
5
6
7
8
rows = 9; for j=1:rows for i=1:j fprintf('%f1 * %f2 = %f3|',j,i,j*i) end fprintf('n') end
以下为Matlab中的输出结果,至于怎样让其省略掉小数点后面的,尝试了很多方法但都没有效果,如有解决了的,烦请在评论区赐教。
复制代码
1
2
3
4
5
6
7
8
9
10
1.0000001 * 1.0000002 = 1.0000003| 2.0000001 * 1.0000002 = 2.0000003|2.0000001 * 2.0000002 = 4.0000003| 3.0000001 * 1.0000002 = 3.0000003|3.0000001 * 2.0000002 = 6.0000003|3.0000001 * 3.0000002 = 9.0000003| 4.0000001 * 1.0000002 = 4.0000003|4.0000001 * 2.0000002 = 8.0000003|4.0000001 * 3.0000002 = 12.0000003|4.0000001 * 4.0000002 = 16.0000003| 5.0000001 * 1.0000002 = 5.0000003|5.0000001 * 2.0000002 = 10.0000003|5.0000001 * 3.0000002 = 15.0000003|5.0000001 * 4.0000002 = 20.0000003|5.0000001 * 5.0000002 = 25.0000003| 6.0000001 * 1.0000002 = 6.0000003|6.0000001 * 2.0000002 = 12.0000003|6.0000001 * 3.0000002 = 18.0000003|6.0000001 * 4.0000002 = 24.0000003|6.0000001 * 5.0000002 = 30.0000003|6.0000001 * 6.0000002 = 36.0000003| 7.0000001 * 1.0000002 = 7.0000003|7.0000001 * 2.0000002 = 14.0000003|7.0000001 * 3.0000002 = 21.0000003|7.0000001 * 4.0000002 = 28.0000003|7.0000001 * 5.0000002 = 35.0000003|7.0000001 * 6.0000002 = 42.0000003|7.0000001 * 7.0000002 = 49.0000003| 8.0000001 * 1.0000002 = 8.0000003|8.0000001 * 2.0000002 = 16.0000003|8.0000001 * 3.0000002 = 24.0000003|8.0000001 * 4.0000002 = 32.0000003|8.0000001 * 5.0000002 = 40.0000003|8.0000001 * 6.0000002 = 48.0000003|8.0000001 * 7.0000002 = 56.0000003|8.0000001 * 8.0000002 = 64.0000003| 9.0000001 * 1.0000002 = 9.0000003|9.0000001 * 2.0000002 = 18.0000003|9.0000001 * 3.0000002 = 27.0000003|9.0000001 * 4.0000002 = 36.0000003|9.0000001 * 5.0000002 = 45.0000003|9.0000001 * 6.0000002 = 54.0000003|9.0000001 * 7.0000002 = 63.0000003|9.0000001 * 8.0000002 = 72.0000003|9.0000001 * 9.0000002 = 81.0000003|

例5:输出一个矩阵每一列的和

复制代码
1
2
3
4
5
6
7
8
matrix=[1 4 6;1:3] [r,c]=size(matrix) %输出该矩阵的行和列 for i=1:c fprintf('第%f列的和为:%fn',i,sum(matrix(:,i))) % %f输出的是i,%fn输出的是矩阵的每一列的和 end %可以通过修改输出矩阵每一列的和、每一行的和、某一列或某一行的和等等

除此之外关于矩阵的改变和调用还有如下语句:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a(3,:)=[ ] %将矩阵a的第三行删掉 a(:,3)=[ ] %将矩阵a的第三列删掉 a(3,:) %读取矩阵a的第三行 a(:,3) %读取矩阵a的第三列 A(:,2)=[m,n,...] %将矩阵A的第二列重新赋值为m,n,... :有代表一整个的意思 a(3,2) %访问矩阵a的第三行第二列的元素 a(1,:)=a(1,1:end) %访问矩阵a的第1行的所有元素 a(2,[3,4]) %访问矩阵a的第2行的第3和第4列元素 a(1:2,1:2) %访问矩阵a的第12行的12列的所有元素 a(:,2) %访问矩阵a每一行的第2列元素,即访问矩阵a的第二列 a(end-1,1) %访问矩阵a倒数第二行的第1列元素 a(5) %访问矩阵a的第5个元素,也就是先行后列排序的第五个(不提倡) a(2,3)=5 %将矩阵a的第二行三列元素改为5 a(1:2,1:2)=4 %将第12行的12列全部赋为4

最后

以上就是虚心钥匙最近收集整理的关于for循环嵌套的全部内容,更多相关for循环嵌套内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(96)

评论列表共有 0 条评论

立即
投稿
返回
顶部