第六讲 matlab控制流.ppt
文本预览下载声明
Matlab控制流 1、for循环结构 for循环结构的语法形式为: for x=array (commands) end 其中,for指令后的变量x称为循环变量,而for与end之间的组命令称为循环体。循环体被重复执行的次数是确定的,该次数由for指令后面的数组array的列数决定。换言之,循环变量依次取数组的各列,对于每个变量值,循环体被执行一次。 例1一个简单的for循环示例。 for i=1:10; %i依次取1,2,…,10 x(i)=i; %对每个i值,重复执行由该指令构成的循环体 end; x %要求显示运行后数组x的值 x = 1 2 3 4 5 6 7 8 9 10 说明:循环不会因为在循环体内对循环变量重新置值而中 断;在for后面的表达式中的数组可以为任何合法的Matlab数 组;循环结构可以嵌套使用;为了得到高效代码,应尽量提高 代码的向量化程度,而避免使用循环结构;为了得到高效代 码,在循环指令之前应尽量对数组进行预定义。 2、while循环结构 while循环结构的语法形式为: while expression (commands) end 在while和end之间的“组命令”被称为循环体。当 Matlab碰到while指令时,首先检测expression的值, 如其值为逻辑真(非零),则执行组命令。当组命令 执行完毕,继续检测表达式的值,若表达式值仍为 真,循环执行组命令;而一旦表达式值为假时,结束 循环。 例2 Fibonacci数组的元素满足Fibonacci 规则: ;且 。现要求该数组中第 一个大于10000的元素。 a(1)=1;a(2)=1;i=2; while a(i)=10000 a(i+1)=a(i-1)+a(i); i=i+1; end; i,a(i), i = 21 ans = 10946 while循环和for循环的区别在于,while循环 结构的循环体被执行的次数不是确定的,而for 结构中循环体的执行次数则是确定的。 一般情况下,表达式的值都是标量值,但 是Matlab允许它为一个数组,此时只有当该数 组所有元素均为真时,Matlab才会执行循环体。 如while指令后的表达式为空数组,Matlab认 为表达式值为假,而不执行循环体。 3、if-else-end分支结构 if-else-end指令为程序流提供了一种分支结 构,它有多种形式,其中最简单用法是:如果 表达式expression为真,执行组命令commands, 否则跳过该组命令。指令形式如下: if expression (commands) end 如果判决条件expression为一个空数 组,Matlab认为条件为假(false)。 如果有两种选择,采用下面的结构: if expression (commands1) else (commands2) end 如果选择项多于两个,采用下面的结构: if expression1 判决表达式1 (commands1) 若表达式1为真时,执行组命令 commands1,结束此结构 elseif expression2 判决表达式2 (commands2) 表达式1为假,而表达式2为真,执行 commands2,结束此结构 …… else (commandsk) 当前面所有表达式均为假时,执行该组命令 end 表达式有时由多个逻辑子表达式组成,Matlab 将尽可能少地检测这次子表达式的值。例如,表 达式为:(子表达式1|子表达式2),当Matlab检 测到子表达式1的值为
显示全部