matlab的控制语句,matlab 控制语句例子

1 while语句

与For循环以固定次数求一组命令的值相反,While 循环以不定的次数求一组语句的值。

While循环的一般形式

while expression {commands} end

只要在表达式里的所有元素为真,就执行while和end

语句之间的{commands}。通常,表达式的求值给出一个标量值,但数组值也同样有效。在数组情况下,所得到数组的所有元素必须都为真。考虑下列例子:

» num=0;EPS=1;

» while (1+EPS)>1

EPS=EPS/2;

num=num+1;

end

» num

num =

53

» EPS=2*EPS

EPS =

2.2204e-016

例子表明了计算特殊MATLAB值eps的一种方法,它是一个可加到1,而使结果以有限精度大于1的最小数值。这里我们用大写EPS,因此MATLAB的eps的值不会被覆盖掉。在这个例子里,EPS以1开始。只要(1+EPS)>1为真(非零),就一直求While循环内的命令值。由于EPS不断地被2除,EPS逐渐变小以致于EPS+1不大于1。(记住,发生这种情况是因为计算机使用固定数的数值来表示数。MATLAB用16位,因此,我们只能期望EPS接近10-16。) 在这一点上,(1+EPS)>1是假(零),于是While循环结束。最后,EPS与2相乘,因为最后除2使EPS太小。

2 For 循环语句For循环允许一组命令以固定的和预定的次数重复。For循环的一般形式是:

for x = array

(commands);

end

在for和end语句之间的{commands}按数组中的每一列执行一次。在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,

n)。例如,

for n=1:10

x(n)=sin(n*pi/10);

end

x

x =

Columns 1 through 7

0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090

Columns 8 through 10

0.5878 0.3090 0.0000

换句话,第一语句是说:对n等于1到10,求所有语句的值,直至下一个end语句。第一次通过For循环n=1,第二次,n=2,如此继续,直至n=10。在n=10以后,For循环结束,然后求end语句后面的任何命令值,在这种情况下显示所计算的x的元素。

3 if - end语句

if expression

{commands}

end

如果在表达式中的所有元素为真(非零),那么就执行if和end语言之间的{commands}。在表达式包含有几个逻辑子表达式时,即使前一个子表达式决定了表达式的最后逻辑状态,仍要计算所有的子表达式。例如,

»

apples=10; % number of apples

»

cost=apples*25 % cost of apples

cost =

250

» if

apples>5 % give 20% discount for larger purchases

cost=(1-20/100)*cost;

end

» cost

cost =

200

假如有两个选择,If-Else-End结构是:

if expression

commands evaluated if True

else

commands evaluated if False

end

在这里,如果表达式为真,则执行第一组命令;如果表达式是假,则执行第二组命令。

当有三个或更多的选择时,If-Else-End结构采用形式

if expression1

commands evaluated if expression1 is True

elseif expression2

commands evaluated if expression2 is True

elseif expression3

commands evaluated if expression3 is True

elseif expression4

commands evaluated if expression4 is True

elseif ……

else

commands evaluated if no other expression is

True

end

最后的这种形式,只和所碰到的、与第一个真值表达式相关的命令被执行;接下来的关系表达式不检验,跳过其余的If-Else-End结构。而且,最后的else命令可有可无。

现在我们知道了如何用If-Else-End结构来决策,就有可能提出一种合理的方法来跳出或中断For循环和While循环。

» EPS=1;

» for num=1:1000

EPS=EPS/2;

if (1+EPS)<=1

EPS=EPS*2

break

end

end

EPS =

2.2204e-016

» num

num =

53

这个例子演示了估算EPS的另一种方法。在这种情况下,For循环构造成要执行足够多的次数。If-Else-End结构检验要看EPS是否变得足够小。如果是,EPS乘2,break命令强迫For循环提早结束,num=53。

在这个例子里,当执行break语句时,MATLAB跳到循环外下一个语句。在现在情况下,它返回到MATLAB的提示符并显示EPS。如果一个break语句出现在一个嵌套的For循环或While循环结构里,那么MATLAB只跳出break所在的那个循环,不跳出整个嵌套结构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值