资源描述:
《matlab笔记之十一-有关m文件编写》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Matlab笔记之十一---- ◎#有关M文件编写#◎for循环结构:forx=array(commands)endwhile循环结构:whileexpression(commands)enda(1)=1a(2)=1i=2whilea(i)<=10000a(i+1)=a(i-1)+a(i)i=i+1end;ia(i)单分支:ifexpression(commands)end双分支:ifexpression (commands1)else (commands2)end多分支:ifexpression1 (commands)elseifex
2、pression2 (commands)…………else (commands)end如果判决条件expression为一个空数组,MATLAB认为条件为假(false)。表达式有时由多个逻辑子表达式组成的,MATLAB将尽可能少地检测这些子表达式的值。例如,表达式为:(子表达式1
3、子表达式2),当MATLAB检测到子表达式1的值为真时,它就认为表达式为真,而不再对子表达式2进行检测。又如,表达式为:(子表达式1&子表达式2),当MATLAB检测到子表达式1的值为假时,它就认为表达式值为假的,从而跳过该结构。if指令判决和break指令的配合使
4、用,可以强制终止for循环或while循环。switch-case结构:switchex ex为一标量或字符串。casetest1(commands1) 当ex等于test1时,执行组命令1,然后跳出该结构。casetest2……casetestk(commandsk) 当ex等于testk时,执行组命令k,然后跳出该结构。otherwise otherwise指令可以不存在(commands) 表达式不等于前面所有检测值时,则执行该组命令。end1当遇到switch结构时,MATLAB将表达式的值依次
5、和各个case指令后面的检测值进行比较。如果比较结果为假,则取下一个检测值再比较,一旦比较结果为真,MATLAB将执行相应的一组命令,然后跳出该结构。如果所有的比较结果都为假,即表达式的值和所有的检测都不等,MATLAB将执行otherwise后面的一组命令。由此可见上述结构保证了至少有一组命令会得到执行。2switch指令后面的表达式应为一个标量或者为一个字符串。对于标量形式的表达式,比较这样进行:表达式==检测值i。而对于字符串,MATLAB将调用函数strcmp来实现比较:strcmp(表达式,检测值i)。3case指令后面的检测值不仅可以为
6、一个标量值或一个字符串,还可以为一个元胞数组。如果一个检测值是一个元胞数组,MATLAB将把表达式的值和该元胞数组中的所有元素进行比较;如果元胞数组中某个元素和表达式的值相等,MATLAB认为此次比较结果为真,从而执行与该检测值相应的一组命令。fori=1:10a{i}=89+ib{i}=79+ic{i}=69+id{i}=59+iendc=[d,c]Name={'Jack','Marry','Peter','Rose','Tom'};Mark={72,83,56,94,100};Rank=cell(1,5);%创建一个含5个元素的架构数组S,它有
7、三个域S=struct('Name',Name,'Marks',Mark,'Rank',Rank);fori=1:5switchS(i).Markscase100%得分为100时 S(i).Rank='满分'; %列为‘满分’等级casea %得分在90和99之间 S(i).Rank='优秀'; %列为‘优秀’等级caseb %得分在80和89之间 S(i).Rank='良好'; %列为‘良好’等级casec %得分在60和79之间
8、S(i).Rank='及格'; %列为‘及格’等级Otherwise %得分低于60S(i).Rank='不及格'; %列为‘不及格’等级endend %将学生姓名,得分,登记等信息打印出来disp(['学生姓名','得分','等级']);disp('')fori=1:5disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank]);end;try-catch结构:try(commands1)组命令1总
9、被执行。若正确,则跳出此结构。catch(commands2)仅当组命令1出现执行错误,组命令2才被执行。end只有当MA