Matlab简单教程:循环
循环输出变量
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会从这个向量中取⼀个值,该值可以参与循环中的计算。
运⾏输出
i =
1
i =
2
i =
3
i =
4
修改迭代步长
例⼦:遍历1~10之间的所有奇数
for i=1:2:10
i
end
其中1:2:10表⽰迭代从1开始,步长为2,最⼤不超过10,即代表⾏向量1 3 5 7 9。
备注:步长可以为负值
遍历⾏向量变量和列向量变量
X=rand(1,5);
for i=X
i
end
X=rand(5,1);
for i=X
i
end
其中rand(1,5)⽣成⼀个1⾏5列的矩阵,即⾏向量;rand(5,1)⽣成5列1⾏的矩阵,即列向量。⽣成的向量会存放在变量X中,然后使⽤for i=X对向量进⾏遍历。
如果X为矩阵,对矩阵进⾏遍历
X=magic(3);
X
for i=X
i
end
运⾏输出
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
X=[2 8 4 3 9 1];
for i=X
if i==3
disp('3 found');
break;
end
end
查向量X是否含有3,如果有则终⽌循环。
跳过本次循环continue
X=[5 7 -1 3 -8 6];
sum=0;
for i=X
if i<0
continue;
end
sum=sum+i;
end
sum
计算向量X中所有⼤于0的数的和。
双重循环和多重循环
双重循环代码
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
运⾏输出
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)这样的形式取出参与计算的值。这⾥只是对该值做了输出。
三重循环代码
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
android简单教程end
运算输出
---------- 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循环

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。