第四章 Matlab的循环结构

第四章 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')降序;