第四讲 MATLAB编程

举报
资源描述
第四讲第四讲 MATLABMATLAB程序设计程序设计输入数值输入数值:x=input(please input a number:)please input a number:22 x=22输入字符串输入字符串:x=input(please input a string:,s)please input a string:this is a string x=this is a string输出显示命令输出显示命令 自由格式自由格式(disp)disp(23+454-29*4)361disp(11 22 33;44 55 66;77 88 99)11 22 33 44 55 66 77 88 99disp(this is a string)this is a string格式化输出格式化输出(fprintf)。fprintf(The area is%8.5fn,area)%注意注意输出格式前须有输出格式前须有%符号,符号,%跳行符号须有跳行符号须有符号符号 The area is 12.56637%输出值为输出值为8位数含位数含5位小数位小数 MATLAB中的控制结构中的控制结构 循环结构循环结构 循环结构允许重复执行一系列语句,循环结构允许重复执行一系列语句,需要被重复执行的语句称为需要被重复执行的语句称为循环体循环体。循环。循环结构的执行方式为首先判断结构的执行方式为首先判断是否达到循环是否达到循环终止条件终止条件,如果没有,则继续执行循环体,如果没有,则继续执行循环体,如果已经达到则跳出循环。如果已经达到则跳出循环。for循环循环 while循环循环选择结构选择结构 ifif结构结构switchswitch结构结构try/catchtry/catch结构结构其他流程控制其他流程控制breakbreak语句语句continuecontinue语句语句returnreturn语句语句for循环循环for循环的语法循环的语法for index=expression loopbodyendindex是循环变量,是循环变量,expression是循是循环控制表达式,在环控制表达式,在for和和end之间的之间的执行语句为循环体执行语句为循环体loopbodyfor循环的执行顺序循环的执行顺序 变量变量index读取表达式读取表达式expression,其在一,其在一般情况下是一个向量,用冒号表达式表示为般情况下是一个向量,用冒号表达式表示为start:increment:end,若采用默认的步长,若采用默认的步长1,则表示为则表示为start:end;在这种情况下,循环变;在这种情况下,循环变量量index每次从向量每次从向量expression中读取一个元中读取一个元素,然后程序执行循环体(素,然后程序执行循环体(loopbody),直),直至向量至向量expression中所有元素读取完毕。中所有元素读取完毕。一般而言,向量一般而言,向量expressionexpression中有多中有多少元素,循环体就执行多少次少元素,循环体就执行多少次特别的,如果特别的,如果expressionexpression是一个矩是一个矩阵,则阵,则indexindex每次读取矩阵的一列,每次读取矩阵的一列,直至所有列读取完毕,亦即循环次直至所有列读取完毕,亦即循环次数为矩阵的列数。数为矩阵的列数。for循环循环利用利用for循环求阶乘循环求阶乘6!下面的循环控制表达式将会产生行向量下面的循环控制表达式将会产生行向量6 5 4 3 2 16 5 4 3 2 1,循环变量循环变量i i依次读取这些数值实现阶乘运算。依次读取这些数值实现阶乘运算。N=6;S=1;for i=N:-1:1 S=S*i;end S循环的嵌套循环的嵌套 forfor循环可以嵌套使用,如果一个循环完循环可以嵌套使用,如果一个循环完全出现在另一个循环当中,我们称这两个循全出现在另一个循环当中,我们称这两个循环为带嵌套的循环。下面的例子用两重环为带嵌套的循环。下面的例子用两重forfor循环嵌套来计算九九乘法表并打印结果循环嵌套来计算九九乘法表并打印结果 for i=1:9for i=1:9 for j=1:ifor j=1:i fprintffprintf(%d*%d=%d%d*%d=%d,i,j,i*ji,j,i*j););endend fprintffprintf(n);(n);end end For循环应注意的问题循环应注意的问题 1.For循环不能用循环不能用For循环内重新赋值循环变循环内重新赋值循环变量量n来终止。来终止。for n=1:10 x(n)=sin(n*pi/10);n=10;end2.语句语句1:10 是一个标准的是一个标准的MATLAB数组创建数组创建语句。在语句。在For循环内接受任何有效的循环内接受任何有效的MATLAB数组。数组。data=3 9 45 6;7 16 -1 5 for n=data x=n(1)-n(2)end3.For循环可按需要嵌套。循环可按需要嵌套。for n=1:5 for m=5:-1:1 A(n,m)=n2+m2;end disp(n)end 4.当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如,例如,for n=1:10 x(n)=sin(n*pi/10);end 上面的循环可以被写成上面的循环可以被写成n=1:10;x=sin(n*pi/10)两种方法得出同样的结果,而后者执行更快,更直两种方法得出同样的结果,而后者执行更快,更直观,要求较少的输入。观,要求较少的输入。5.为了得到最大的速度,在为了得到最大的速度,在For循环循环(While循环循环)被执行之前,应预先分配数组。被执行之前,应预先分配数组。x=zeros(1,10);%preallocated memory for xfor n=1:10 x(n)=sin(n*pi/10);end现在,只有现在,只有x(n)的值需要改变。的值需要改变。while循环循环 while循环的语法循环的语法while为条件循环语句。为条件循环语句。while循环的循环循环的循环终止条件通常是对循环条件表达式的判断,终止条件通常是对循环条件表达式的判断,只要循环条件表达式为真,则循环体就重只要循环条件表达式为真,则循环体就重复执行,直到循环条件表达式为假。所以复执行,直到循环条件表达式为假。所以while循环的次数不确定。循环的次数不确定。while condition loopbody end利用利用while求求EPS(eps)EPS=1;EPS=1;while(1+EPS)1 while(1+EPS)1 EPS=EPS/2;EPS=EPS/2;end end EPS=EPS*2 EPS=EPS*2 EPS=EPS=2.2204e-016 2.2204e-016 while循环循环利用利用while循环求循环求Fibonacci数列的小于数列的小于100的前的前n项项 f(1)=1;f(2)=1;f(1)=1;f(2)=1;%Fibonacci%Fibonacci数列的前两项数列的前两项 i=2;i=2;%项数标志项数标志 flag=0;flag=0;%循环终止判断标志变量循环终止判断标志变量 while(flag while(flag if(attendance=0.90)if(attendance=0.90)&(grade=60)&(grade=60)pass=1;pass=1;end endif结构结构if-else-end结构结构 if conditionif condition statements_1 statements_1 else else statements_2 statements_2 end end其中当条件表达式其中当条件表达式condition的值为真的值为真(非(非0)时执行语句段)时执行语句段statements_1,否则则执行语句段否则则执行语句段statements_2。x=randx=rand();();if x0.5if x0.5 fprintffprintf(x is greater than0.5n);(x is greater than0.5n);elseelse fprintffprintf(x is less than 0.5n)(x is less than 0.5n)endendif结构结构if-elseif-else-end结构结构 if condition_1if condition_1 statements_1 statements_1 elseifelseif condition_2 condition_2 statements_2 statements_2 .else else statements_3 statements_3 end end if结构结构if的嵌套使用的嵌套使用if 结构的使用非常灵活,需要注意的是,它必结构的使用非常灵活,需要注意的是,它必须含有一个须含有一个if语句和一个语句和一个end语句。中间可以有语句。中间可以有任意个任意个elseif 语句,也可以有一个语句,也可以有一个else语句。语句。这样我们可以根据实际的需要确定选择哪种结这样我们可以根据实际的需要确定选择哪种结构。同时,构。同时,if语句也是可以嵌套使用的,如果语句也是可以嵌套使用的,如果if 结构完全是另一个结构完全是另一个if结构的一个语句块,我们结构的一个语句块,我们就称两者为嵌套关系,例如二重嵌套的一般语就称两者为嵌套关系,例如二重嵌套的一般语法格式如下:法格式如下:if condition_1if condition_1 statements_1 statements_1 if condition_2 if condition_2 statements_2 statements_2 end end end end在大多数情况下,执行一个算法,即可以用多在大多数情况下,执行一个算法,即可以用多个个else if语句,也可以用语句,也可以用if语句的嵌套。用户可语句的嵌套。用户可以根据喜好选择相应的方式。以根据喜好选择相应的方式。switch结构结构用法用法switchswitch结构被称为开关结构。用户可以根据一个单精度整形结构被称为开关结构。用户可以根据一个单精度整形数,字符或逻辑表达式的值来选择执行特定的语句段。其基数,字符或逻辑表达式的值来选择执行特定的语句段。其基本语法格式为:本语法格式为:在这个控制结构中,如果在这个控制结构中,如果switch_exprswitch_expr的值与的值与case_expr_1case_expr_1相相符,那么第一个语句段符,那么第一个语句段statements_1statements_1将会被执行,然后程序将会被执行,然后程序将会跳转到将会跳转到switchswitch结构结束语句结构结束语句endend后的第一个语句。如果后的第一个语句。如果switch_exprswitch_expr的值与的值与case_expr_2case_expr_2相符,那么第二个语句段将相符,那么第二个语句段将会被执行,然后程序将会跳到会被执行,然后程序将会跳到switchswitch结构结束语句结构结束语句endend后的后的第一个语句。在这个结构中,第一个语句。在这个结构中,otherwiseotherwise语句段是可选的。语句段是可选的。如果它存在的话,当如果它存在的话,当switch_exprswitch_expr的值与其他所有的选项都的值与其他所有的选项都不相符时,语句段不相符时,语句段statements_otherstatements_other将会被执行。如果它不将会被执行。如果它不存在,且存在,且witch_exprwitch_expr的值与所有的选项都不相符时,结构中的值与所有的选项都不相符时,结构中的任何一个语句段都不会被执
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号