当前位置:文档之家› M文件和流程控制(matlab)..

M文件和流程控制(matlab)..


4.1.2 条件控制语句if,switch
1. if 条件式1 语句段1 elseif 条件式2 语句段2 ... else 语句段n+1 end
当有多个条件时,条件 式1为假再判断elseif的 条件式2,如果所有的条 件式都不满足,则执行 else的语句段n+1,当条 件式为真则执行相应的语 句段; If…else…end结构 也可以是没有elseif和 else的简单结构。
4.1.4 其他流程控制指令(续)
error/lasterr 显示出错信息/显示最新出错原因,终止程序运行 warning/lastwarn 显示警告/显示MATLAB自动给出的最新警告,程序继续运行 %exm R=input('What is your name:','s') %以字符串形式赋给R S=input('How old are you?') %键入数值 pause(3) %暂停3秒 pause %等待用户按任意键 error('You can''t join the army') %显示出错信息 errordlg,warndlg %给出出错、警告对话框
4.1.4 其他流程控制指令(续)
5. input指令 input指令用来提示用户应该从键盘输入数值、字符 串和表达式,并接受该输入。 a=input(‘input a number:’) %输入数值给a b=input('input a number:','s') %输入字符串给b
6. return指令 return指令是终止当前命令的执行,并且立即返回 到上一级调用函数或等待键盘输入命令,可以用来提 前结束程序的运行。
举例:
条件控制语句if举例
cost=10;number=12; if number>8 sums=number*0.95*cost; end,sums
演示
4.1.2 条件控制语句if,switch
2. switch 开关表达式 case 表达式1 语句段1 case表达式2 语句段2 ... otherwise 语句段n end
try 语句段1 catch 语句段2 end
首先试探性地执行语句段 1,如果在此段语句执行 过程中出现错误,则将错 误信息赋给保留的 lasterr变量,并放弃这 段语句,转而执行语句段 2中的语句,当执行语句 段2又出现错误,则终止 该结构。
举例:
try…catch…end结构进行矩阵相乘运算
小结:
1)case后面的表达式可以是元胞数组,只 要开关表达式的值与元胞数组中任一个 元素值相等,就执行其后的语句段。 2)switch指令判断开关表达式的值符合哪 一个case,并执行相应的语句段,执行 完毕,自动跳出switch结构,不需要 break指令。
4.1.3 try... catch... end结构
(1) 将开关表达式依次与case后面的 表达式进行比较,如果表达式1不满足, 则与下一个表达式2比较,如果都不满 足则执行otherwise后面的语句段n; 一旦开关表达式与某个表达式相等, 则执行其后面的语句段。 (2) 开关表达式只能是标量或字 符串。 (3) case后面的表达式可以是标 量、字符串或元胞数组,如果是元胞 数组则将开关表达式与元胞数组的所 有元素进行比较,只要某个元素与开 关表达式相等,就执行其后的语句段。
n=4; a=magic(n); %生成4阶魔方矩阵a m=3; b=eye(3); %生成3阶单位矩阵b
演示
4.1.3 try... catch... end结构
小结: 试探出矩阵的大小不匹配时,矩阵无法相 乘,则再执行case后面的语句段,将a的子 矩阵取出与b矩阵相乘。可以通过这种结构 灵活的实现矩阵的乘法运算。
举例:
例4.2 条件控制语句用于学生的成绩管理
%exm04_02.m clear; %划分区域:满分(100),优秀(90-99),良 好 %(80-89),及格(60-79),不及格(<60) for i = 1:10 a{i} = 89+i; b{i} = 79+i;
演示
例4.2 条件控制语句用于学生的成绩管理
循环控制语句for x=array 循环体
4.1 MATLAB控制流函数(续)
4.1.1 循环控制语句while while 表达式 循环体 end
只要表达式为逻辑真,就执行循环体;一旦 表达式为假,就结束循环。表达式可以是向量 也可以是矩阵,如果表达式为矩阵则当所有的 元素都为真才执行循环体,如果表达式为nan, MATLAB认为是假,不执行循环体。
例4.1 循环控制语句
%a中每一个数字等于所在行列数之和 for i = 1:10 for j = 1:10 a(i,j) = i+j; end end a
演示
例4.1 循环控制语句(续)
注意: end必须和for, while成对出现,不可 省略。特别是出现循环嵌套时,一定要注 意for/while和end的配对问题。
4.1.4 其他流程控制指令
1. break指令 break指令可以使包含break的最内层的for 或while语句强制终止,立即跳出该结构,执 行end后面的命令,break命令一般和If结构结 合使用。 2. continue指令 continue指令用于结束本次for或while循环, 只结束本次循环而继续进行下次循环。
4.1.4 其他流程控制指令(续)
3. pause指令 pause指令用来使程序运行暂停,等待用户 按任意键继续 。 pause(n)指令用于使程序暂停n秒后再继续 执行。 4. keyboard指令 keyboard指令将“控制权”交给键盘,等待 键盘命令,仅当用户输入return指令后,“控 制权”才交回程序。
变量的检测传递和限权使用函数 输入输出变脸检测函数 子函数和私用函数 串演算函数 函数句柄 调试和剖析
4.1 MATLAB控制流函数
4.1.1 for end
循环体被循环执行,执行的次数就是array的 列数,array可以是向量也可以是矩阵,循环变 量x依次取array的流程控制
M文件和流程控制
MATLAB控制流函数 循环控制语句 条件控制语句if,switch try…catch…end结构 其它流程控制指令
M文件和流程控制(续)
M脚本文件和函数文件 M脚本文件和函数文件的比较 局部变量和全局变量 M文件的一般结构
M文件和流程控制(续)
相关主题