# matlab
简单for循环
for循环用来循环处理数据。
例:输出1~100的和
1 2 3 4 5 6 7 8 9 10
| >> clear >> sum = 0; >> for i = 1:100 sum = sum +i; end >> sum
sum =
5050
|
解释:i从1到100,每次增加一个,该共循环100次
注意:分号的位置;不能使用“+=”符号;每写一层循环,必须以end结尾
带有步长的for循环
例:输出1到10之间的奇数和
1 2 3 4 5 6 7 8 9 10 11
| >> clear >> sum = 0; >> for i = 1:2:10 sum = sum + i; end >> sum
sum =
25
|
解释:i = 1:2:10中间的2表示步长,表示从1到10,每次增加2,即1,3,5,7,9五个数之和;步长也可以为负数
对向量和矩阵的遍历
- 对向量的遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| >> clear >> A = rand(1,4); >> for i = A i end
i =
0.9572
i =
0.4854
i =
0.8003
i =
0.1419
|
解释:rand函数用于随机生成0~1之间的数,rand(1,4)生成1*4的列向量。
- 对矩阵的遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| >> A = magic(4); >> A
A =
16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
>> for i = A; i end
i =
16 5 9 4
i =
2 11 7 14
i =
3 10 6 15
i =
13 8 12 1
|
解释:magic(n)函数用于生成任意一行或一列或主副对角线之和相等的方阵,对矩阵的循环遍历是依次取出矩阵中的每一列元素
break和continue的使用
break用于终止离它最近的一层for循环;
continue用于跳过离它最近的一层for循环,接着执行下一次循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| >> x = 1; >> for i = 1:2:10 if i > 7 break else x = x* i end end
x =
1
x =
3
x =
15
x =
105
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| >> sum = 0; >> for i = 1:6 if i == 4 continue else sum = sum + i end end;
sum =
1
sum =
3
sum =
6
sum =
11
sum =
17
|
多层for循环
for循环可以按照需要进行嵌套。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| >> for i = 1:2:6 for j = 1:3 y = i * j end end
y =
1
y =
2
y =
3
y =
3
y =
6
y =
9
y =
5
y =
10
y =
15
|
Reference