Matlab:for循环

# 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. 对向量的遍历
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. 对矩阵的遍历
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