MATLAB编程入门(二) 2.While 循环 与For循环以固定次数求一组命令的值相反,While 循环以不定的次数重复执行一组语句。While循环的一般形式是: while 表达式1 语句1 end 只要表达式1里的所有元素为真,就执行while和end之间的语句1,否则,就结束循环。通常,表达式的值给出一个标量值,但数组值也同样有效。在数组情况下,当数组的所有元素为真(值不等零)时,就执行语句1,数组中有一个元素为假(值为零),就结束循环。 例3按下面的公式计算: 使误差小于给定的 . 解: 把 作为误差,程序如下: error=input('请输入误差:'); x=1; y=0; n=1; while x>error y=y+1; x=x/n; n=n+1; end e=y 运行如下: 请输入误差:0.001 e = 2.7181 3.IF-ELSE-END 结构 很多情况下,命令的序列必须根据关系的检验有条件地执行。在编程语言里,这种逻辑由某种If-Else-End结构来提供。最简单的If-Else-End结构是: if 表达式1 语句1 end 如果在表达式1中的所有元素为真(非零),那么就执行if和end语言之间的语句1。 假如有两个选择,If-Else-End结构是: if 表达式1 语句1 else 语句2 end 在这里,如果表达式1为真,则执行语句1;如果表达式是假,则执行语句2。 当有三个或更多的选择时,If-Else-End结构采用形式 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 elseif 表达式4 语句4 elseif …… . . . else 语句 end 如果表达式1为真,则执行语句1,结束循环;如果表达式1为假,则检验表达式2,如果表达式2为真,则执行语句2,结束循环;如果表达式2为假,则检验表达式3,如此下去,如果所有表达式都为假时,则执行最后的语句。即只执行第一个真值表达式相关的语句;接下来的表达式不检验,跳过其余的If-Else-End结构。而且,最后的else命令可有可无。 4.switch-case-end结构 如果在一个程序中,必须针对某个变量不同取值情况进行相应操作,switch语句比if else语句更方便。switch语句的一般形式为: switch 分支条件(数值或字符串) case 数值(或字符串)条件1 语句1 case 数值(或字符串)条件2 语句2 case 数值(或字符串)条件3 语句3 case ... ... otherwise 语句 end 其中分支条件可以是一个函数、变量或者表达式.如果条件1与分支条件匹配就执行语句1,退出循环;否则,检验条件2,如果条件2与分支条件匹配执行语句2,退出循环;否则,检验条件3,...,当所有条件都不与分支条件匹配时就执行最后的语句。注意otherwise是可以省略的。 例4 在图形界面上放置一个弹出式菜,点击弹出式菜单可以设置曲线颜色。 解:程序如下: x=linspace(-6,6,50); y=sin(x); h=plot(x,y,'linewidth',4); h0=uicontrol('position',[600,500,100,30],... 'style','popupmenu',... 'string','红色|蓝色|黄色|黑色|青色',... 'callback',... ['v=get(h0,''value'');',... 'switch v;',... 'case 1;',... 'set(h,''color'',''r'');',... 'case 2;',... 'set(h,''color'',''b'');',... 'case 3;',... 'set(h,''color'',''y'');',... 'case 4;',... 'set(h,''color'',''k'');',... 'case 5;',... 'set(h,''color'',''c'');',... 'end;']);

评论