第四章 Matlab的循环结构
4.1 while循环
while expression
code_block
end
4.2 while循环举例
1) mean(a):均值,其中,a = [1 2 3 4 5 6 7 8 9]
2) std(a):标准差
4.3 for循环
1) 形式
for index=expr
code_block
end
index是循环指数,它读取数组expr的列数,expr有多少列,循环就执行多少次,expr最常见的就是冒号表达式。
如:for ii=1:2:10 循环5次
for ii=[2 5 9] 循环3次
for ii=[2 5 9;1 6 10] 循环3次
2) prod(a):阶乘函数
4.4 for循环举例
4.5 break和continue
1) break:结束循环
2) continue:直接进入下一个循环
4.6 循环的嵌套
4.7 编译语言与解释语言
1) 解释型语言:Matlab、html、js、...
2) 编译型语言:C、C++、...
4.8 逻辑数组与向量化
1) logical(a):逻辑函数;b = logical(a),将数组a转化为逻辑数组b;
2) b + 0:将逻辑数组b转化成数组a;
3) 逻辑数组的屏蔽作用(mask):
>> a = [1 2 3;4 5 6;7 8 9]
>> b = a > 5
b =
0 0 0
0 0 1
1 1 1
>> a = sqrt(a(b))
a =
2.6458
2.8284
2.4495
3.0000
表达式a(b),对所有b中逻辑值为0的值屏蔽掉(不参与运算),只对不为0的数进行运算。将数组作为一个整体(向量化+逻辑数组)来运算,可以代表循环(for,while),提高运算效率。如,对数组中大于5的数进行开方:a(b) = sqrt(a(b))
4.9 应用举例
1) tic函数:启动计时器;
2) toc函数:终止时间;
如:
>> tstart = tic();
tstart =
672111796527
>> toc(tstart)
Elapsed time is 9.054764 seconds.
4.10 应用举例(2)
1) sort排序函数:sort(a)升序;sort(a,'descend')降序;