我是靠谱客的博主 犹豫西装,这篇文章主要介绍Matlab简单教程:循环,现在分享给大家,希望可以做个参考。

循环输出变量

复制代码
1
2
3
for i=1:4 i end

其中1:4代表一个行向量1 2 3 4,在matlab中,行向量的另外一个表示方法是[1 2 3 4],即for i=1:4等价于for i=[1 2 3 4],编写程序时牢记一个点:对于某次固定的迭代,i会从这个向量中取一个值,该值可以参与循环中的计算。

运行输出

复制代码
1
2
3
4
5
6
7
8
i = 1 i = 2 i = 3 i = 4

修改迭代步长

例子:遍历1~10之间的所有奇数

复制代码
1
2
3
for i=1:2:10 i end

其中1:2:10表示迭代从1开始,步长为2,最大不超过10,即代表行向量1 3 5 7 9

备注:步长可以为负值

遍历行向量变量和列向量变量

复制代码
1
2
3
4
X=rand(1,5); for i=X i end
复制代码
1
2
3
4
X=rand(5,1); for i=X i end

其中rand(1,5)生成一个1行5列的矩阵,即行向量;rand(5,1)生成5列1行的矩阵,即列向量。生成的向量会存放在变量X中,然后使用for i=X对向量进行遍历。

如果X为矩阵,对矩阵进行遍历

复制代码
1
2
3
4
5
X=magic(3); X for i=X i end

运行输出

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
X = 8 1 6 3 5 7 4 9 2 i = 8 3 4 i = 1 5 9 i = 6 7 2

其中magic(n)代表魔法函数(任意一行或一列的和值相等)。从运行结果中可以看出,对矩阵的循环就是在每次迭代中,依次取出矩阵的每一列。

终止循环break

复制代码
1
2
3
4
5
6
7
X=[2 8 4 3 9 1]; for i=X if i==3 disp('3 found'); break; end end

查找向量X是否含有3,如果有则终止循环。

跳过本次循环continue

复制代码
1
2
3
4
5
6
7
8
9
10
X=[5 7 -1 3 -8 6]; sum=0; for i=X if i<0 continue; end sum=sum+i; end sum

计算向量X中所有大于0的数的和。

双重循环和多重循环

双重循环代码

复制代码
1
2
3
4
5
6
7
8
9
X=magic(3); X [row,col]=size(X); for i=1:row disp(['----- row: ', num2str(i),' -----']); for j=1:col disp(['col ',num2str(j),' :', num2str(X(i,j))]); end end

运行输出

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
X = 8 1 6 3 5 7 4 9 2 ----- row: 1 ----- col 1 :8 col 2 :1 col 3 :6 ----- row: 2 ----- col 1 :3 col 2 :5 col 3 :7 ----- row: 3 ----- col 1 :4 col 2 :9 col 3 :2

第一重循环遍历每一行,对于其中一行,在第二重循环中对该行进行遍历。在第二重循环中,一般使用X(i,j)这样的形式取出参与计算的值。这里只是对该值做了输出。

三重循环代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
toFind=[12,23,9,10]; X=magic(3); [row,col]=size(X); for find=toFind disp(['---------- looking ',num2str(find)]); found=0; for i=1:row for j=1:col if X(i,j)==find disp([num2str(find),' found at position (',num2str(i),',',num2str(j),')']); found=1; end end end if found==0 disp([num2str(find), ' not found']); end end

运算输出

复制代码
1
2
3
4
5
6
7
8
---------- looking 12 12 not found ---------- looking 23 23 not found ---------- looking 9 9 found at position (3,2) ---------- looking 10 10 not found

查找toFind向量中每一个值,在X矩阵中是否存在。

while循环

除了以上常用的for循环以外,在matlab中还可以使用while循环,参考doc while

最后

以上就是犹豫西装最近收集整理的关于Matlab简单教程:循环的全部内容,更多相关Matlab简单教程内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部