您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > matlab第七讲教案
西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第七章逻辑函数与控制结构课型:新授课教具:多媒体教学设备,matlab教学软件一、目标与要求能够正确使用函数find,正解和正确使用if/else系列命令,理解switch/case结构,正确使用for循环和while循环。二、教学重点与难点本堂课教学的重点在于引导学生在编写matlab程序时能够熟练运用控制结构的相关函数实现相应的功能。三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。四、教学内容课后习题讲解%%onea=[15322;385;14382];b=[156]';c=[121852];d=a(:,3)%%twoe=[b,d]%%threef=[b;d]%%fourg=[c(1:3);a]%%fiveh=[a(1,3),c(1,2),b(2,1)]%%VariableDefinitionDensity_mercury=13560;g=9.81;p=0:10000:100000;%%mercuryh_mercury=p./(Density_mercury*g)%%waterh_water=h_mercury.*13560/1000%%outputh=[h_mercury',h_water'](3)已知下列矩阵:1104265878235645913232289x1234101272127y1022513z①查找各矩阵中所有大于10的元素的序号,输出结果用单序号方法表示。②查找各矩阵中所有大于10的元素的序号,输出结果用该元素的下标表示。③查找各矩阵中所有大于10的元素。④查找各矩阵中所有大于10小于40的元素的序号,输出结果用单序号方法表示。⑤查找各矩阵中所有大于10小于40的元素的序号,输出结果用该元素的下标表示。⑥查找各矩阵中所有大于10小于40的元素⑦用length和find查询各矩阵中数值在0到10之间或70到80之间元素的个数。%%VariableDefinitionx=[110426;587823;5645913;232289];y=[123;41012;72127];z=[1022513];%%onea=find(x10),b=find(y10),c=find(z10),%%two[a2,A2]=find(x10),[b2,B2]=find(y10),[c2,C2]=find(z10),%%threea3=x(a),b3=y(b),c3=z(c),%%foura4=find(x10&x40),b4=find(y10&y40),c4=find(z10&z40),%%five[a5,A5]=find(x10&x40)[b5,B5]=find(y10&y40)[c5,C5]=find(z10&z40)%%sixa6=x(a4),b6=y(b4),c6=z(c4)%%sevena7=find((x0&x10)|(x70&x80));aa=length(a7)b7=find((y0&y10)|(y70&y80));bb=length(b7)c7=find((z0&z10)|(z70&z80));cc=length(c7)(4)使用if、if/else、elseif等结构创建函数解决下列问题,假设函数的输入数据为标量,对函数进行测试。①.假设某州的法定饮酒年龄为21岁,创建函数判断是否达到法定饮酒年龄。②.许多游乐场所规定了参与者的最低身高。假设某种游戏要求参与者必须高于155,创建函数判断是否符合身高要求。③在产品制造时,通常会规定产品尺寸的容差。假设某产品的长度为5.4㎝,可以允许有0.1㎝的正负误差。创建函数判断产品是否符合该技术要求。④固体燃料火箭发动机有三级。第一级的燃料耗尽后与导弹分离,第二级点火。然后第二级燃尽分离后第三级点火。最后,第三级燃尽后与导弹分离。各级的燃烧时间如下所示:级10~100s级2100~170s级3170~260s创建函数判断火箭正处于第一级、第二级、第三级和自由飞行(无动力阶段)中的哪个阶段?①age=input('Enteravalueofyourage:');ifage21disp('Youhavereachedlegaldrinkingage!')elsedisp('You''vnotreachedlegaldrinkingage!')end②Height=input('Enteravalueofyourheight:');ifheight155disp('Youhavereachedtheheight!')elsedisp('You''vnotreachedtheheight!')end③size=input('Enteravalueofsize:');ifsize5.3disp('It''snotaacceptedproduct!')elseifsize5.5disp('It''snotaacceptedproduct!')elsedisp('It''saacceptedproduct!')end或size=input('Enteravalueofsize:');ifsize5.3&size5.5disp('It''saacceptedproduct!')elsedisp('It''snotaacceptedproduct!')end④time=input('Enteravalueoftime:');iftime0&time100disp('one')elseiftime0&time170disp('two')elseiftime0&time260disp('three')elseiftime260disp('freefly')elsedisp('Youinputaerrorinformation!')end接第六课内容(4)switch/case结构在Matlab中,switch/case结构可以根据一个给定参数的不同取值,执行不同的命令。它和if/else/elseif类似,都属于条件分支结构。凡是能够用if/else/elseif结构实现的程序功能都可以用switch/case结构实现。而且用switch/case结构实现程序代码更容易理解。switch/case结构和elseif结构的最大区别在于判断的条件既可以是标题也可以是字符串,在实际情况下,字符串形式的判断条件比数字形式要常用。Switch/case的语法结构如下:switchvariablecaseoption1codetobeexecutedifvariableisequaltooption1caseoption2codetobeexecutedifvariableisequaltooption2………………caseoptionncodetobeexecutedifvariableisequaltooptionnotherwisecodetobeexecutedifvariableisnotequaltoanyoftheoptionsend实例创建函数用来显示三个城市的飞机票价格city=input('Enterthenameofacity:','s')switchcitycase'Boston'disp('$345')case'Denver'disp('$150')case'Honolulu'disp('Stayhomeandstudy')otherwisedisp('Notonfile')end语句中otherwise不是必需的,这条语句表示当所有的情况都不满足时,程序的输出结果。在C语言中也有switch/case结构。Matlab和C语言的不同之处在于当某一条件为true时,Matlab不再验证其它条件是否满足。例题世界上许多国家没有对公制单位的使用做强制性规定,这些国家包括美国、英国、利比亚和缅甸。在美国既可以使用公制单位也可以使用英制单位。例如,老式汽车中既使用了公制单位也使用了英制单位,而1989年以后生产的新款汽车全部采用公制单位。酒的单位是升,牛奶的单位是加仑,距离的单位是英里,功率的单位是瓦特。公制单位和英制单位经常会发生混淆。如果驾车从美国到加拿大旅行就会发现在美国汽油的单位的加仑,而在加拿大汽油的单位是升。用switch/case结构编写一段程序,要求具有以下功能:由用户输入汽油的单位(升或加仑)提示用户输入想购买汽油的数量假设每加仑汽油2.89美元,计算汽油的总价1.问题描述计算汽油的总价2.输入/输出描述输入:指定汽油的计量单位是加仑还是升以及购买的汽油的数量输出:每加仑2.89美元,计算汽油的总价clear,clc%Definethecostpergallonrate=2.89;%Asktheusertoinputgallonsorlitersunit=input('Entergallonsorliters','s');%Usetoswitch/casetodeterminetheconversionfactorswitchunitcase'gallons'factor=1;case'liters'factor=0.264;otherwisedisp('Notavailable')factor=0;end%Asktheuserhowmuchgashe/shewouldliketobuyvolume=input('Enterthevolumeyouwouldliketobuyin\n');%Calculatethecostofthegasiffactor~=0cost=volume*factor*rate;%Sendtheresultstothescreenfprintf('Thatwillbe$%5.2ffor%5.1f%s\n',cost,volume,unit)end(5)menu结构函数menu常和switch/case结构一起使用。运行后,在屏幕上会出现一个菜单,菜单的内容可以由编程人员设定。函数menu的语法结构为input=menu(‘Messagetotheuser’,’textforbutton1’,’textforbutton2’,etc.)在前面飞机票的例子中如果使用menu,用户就可以在菜单上选择任意一个城市。由于用户不可能选择“notonfile”作为城市名,因此原程序中可以去掉otherwise语句:city=menu('Selectacityfromthemenu:','Boston','Denver','Honolulu')switchcitycase1disp('$345')case2disp('$150')case3disp('Stayhomeandstudy')end注:使用菜单这种图形化界面可以大大减少用户出现拼写错误的可能性。同时在case语句中用序号代替了字符串。这个脚本程序运行后,屏幕上会出现如下图所示的菜单,用户可以选择任意一个选项,matlab就会出现相关的结果。加油问题,采用菜单方式在上例中用switch/case实现了以加仑或升为单位加油的功能。程序中存在一个问题:即如果用户拼写错误,程序将无法运行。例如:当程序提示用户输入gallons或liters时,用户错误的输入litters程序将输出Notavailable如果在程序中使用菜单功能,那么用户只需选择按键就可以完成操作,这样就避免了错误地发生。修改后的程序仍然采用switch/case结构,不过需要添加菜单功能。1.问题描述计算汽油的总价2.输入/输出描述输入使用菜单确定汽油的计量单位是加仑还是升输出假设每加仑汽油2.89美元,计算汽油的总价clc,clear%%Definethecostpergallonrate=2.89;%%As
本文标题:matlab第七讲教案
链接地址:https://www.777doc.com/doc-2882224 .html