




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西南科技大学本科生课程备课教案计算机技术在安全工程中的应用 Matlab入门及应用授课教师:徐中慧班 级:专 业:安全技术及工程第四章输入、输出课型:新授课 教具:多媒体教学设备,matlab教学软件一、目标与要求掌握matlab中自定义输入、输出、图形输入的运用,以及在M文件中使用元胞模式以及从文件中读写数据。二、教学重点与难点本堂课教学的重点在于引导学生在编写matlab程序时能够熟练运用相关的输入输出函数实现相应的功能。三、教学方法 本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。四、教学内容一、课后习题的解说。(1)为了准确预报天气情况,气象学家对大气
2、环境进行研究,由于数据量很大,天气预报是非常复杂的过程。气象学家需要了解化学、物理学、热动力学、地理科学和关于大气运动的专业知识。在天气预报过程中,常常会用到克劳修斯克拉贝龙方程。在化学课程或热动力学课程中对这个方程都有详细的介绍。 在气象学中,克劳修斯克拉贝龙方程确定了饱和水蒸气压强和大气温度的关系。若已知空气中水蒸气的压强,就可以计算空气的相对湿度,而天气预报中的一个非常重要的参数就是相对湿度。克劳修斯克拉贝龙方程为:其中:温度为T时,饱和水蒸汽的压强,单位mbar=水蒸汽的相对潜热,2.453×106J/kg=潮湿气体的气体常数,461J/kg是热力学温度,单位为K 地球表面温
3、度一般在-600F到1200F之间。利用克劳修斯-克拉贝龙方程求出在这个温度范围内饱和气体的压强。结果用华氏温度与饱和气体压强的对应表格的形式显示出来。Eg: Hv=2.453e6;Rair=461;F=-60:10:120;T=(F+459.6)./1.8;P0=6.11*exp(Hv/Rair*(1/273-1./T)Result=T',P0'(2)设气球受到竖直向下方向的重力为100N,竖直向上方向的浮力为200N,与水平线成30度角方向风的推力为50N,求气球所受合力的大小和方向。思路:先求竖直方向的合力,再求水平方向的合力。竖直方向的合力 Fy200-100+50*s
4、ind(30);水平方向的合力 Fx50*cosd(30);a=atand(F1/F2)F=Fy/tand(a)二、引言 到目前为止,本课程介绍了两种matlab的使用方法:一种是在命令窗口中直接输入命令行,另一种是在编辑窗口中编写简单的脚本M文件。此时编程人员本身就是用户。但对于较为复杂的matlab程序来说,编程人员和用户很可能不是同一个人。为了避免求解相似问题时重复编写代码,要求程序给用户提供输入和输出命令。Matlab提供了许多内置函数可以实现对程序的输入/输出控制,接下来将一一进行介绍。三、自定义输入(1)input的基本应用假设已经编写好一个脚本程序,并存为脚本M文件,编程人员和用
5、户是同一个人。若要改变程序中输入变量的值,就必须修改部分程序代码。在通用的matlab程序中可以使用函数input,在程序运行过程中提示用户从键盘输入数据。 z=input(Enter a value)使用同样的方法还可以输入一维或二维矩阵,但用户必须正确输入括号和分界符(逗号或分号)。 z=input(Enter a value for z in brackets) brackets 方括号 (2)input还可以输入字符型数组x=input('Enter your name in single quotes') single quotes单引号holly如果输入信息是一个字
6、符串(在matlab中字符串就是字符型数组),则必须加上单引号。还有一种方法就是在input的第二个输入参数中限定输入为字符串:x=input(Enter your name,s) 练习物体在重力作用下做自由落体运动。计算自由落体运动的距离的公式为 其中,是自由下落的距离;是重力加速度;是下落的时间。由用户输入重力加速度g的值和时间矢量。问题描述:计算物体自由下落的距离,并画出曲线Matlab程序 g=input(what is the value of acceleration due to gravity?);start=input(what starting time would you
7、 like?);finish=input(what ending time would you like?);incr=input(what time increments would you like calculated?);time=start:incr:finish; distance=1/2*g*time.2;plot(time,distance)title(Distance traveled in free fall)xlabel(time,s),ylabel(distance,m)final_distance=max(distance)四、输出函数disp 在Matlab中,显示
8、矩阵内容的方法有很多种。最简单的方法是直接输入后面不加分号的矩阵名,在命令窗口中显示矩阵名称,并在第二行显示矩阵的值。 disp可以直接显示矩阵的值:x=1:5x = 1 2 3 4 5disp(x) 1 2 3 4 5函数disp还可以显示字符串(文本内容要用单引号)。disp('The values in the x matrix are:')The values in the x matrix are:每个显示函数的显示内容都单独使用一行disp('The values in the x matrix are:');disp(x)The values in
9、 the x matrix are: 1 2 3 4 5可以使用函数num2str(数值到字符)可以把两次输出的内容合并成一个矩阵。这个过程称为联级。函数num2str可以把数值型数据转换成字符型数据。在这个例子中,先用函数num2str把矩阵x转换成字符型数组,然后再和第一个字符串合并成一个大的字符型数组。 注意:如果在字符串中包含引号,则要输入两个引号,否则matlab会把单引号看成是字符串的结束标志。使用引号的字符串如下:disp('The moon''s gravity is 1/6th that of the earth')The moon's
10、 gravity is 1/6th that of the earth利用函数input和disp模仿对话的案例disp('Hi');disp('I''m your Matlab program');name=input('Who are you?','s');disp('Hi',name);answer=input('Don''t you just love computers?','s');disp(answer,'?');disp
11、('Computers are very useful');disp('You''ll use them a lot in college!');disp('Good luck with your studies')pause(2);disp('Bye bye') 程序交互过程中用到了函数pause。如果函数pause没有输入参数,那么程序会中止运行,直到按任何键继续。如果pause有输入参数,则程序会根据输入参数暂停数秒后继续执行。五、格式 化输出函数fprintf 函数fprintf的输出格式比函数disp有更
12、严格的要求。除了能显示文本信息和数据矩阵外。函数fprintf还可以指定数据的显示格式。该函数的功能与C语言中的fprintf类似。 我们先看fprintf运用的一个例子cows=5;fprintf('There are %f cows in the pasture',cows)There are 5.000000 cows in the pasture 在上述代码中,函数fprintf的第一个参数包含一个占位符(%)。占位符不但指定了输出的格式,还表明了变量输出的位置。程序代码中的%f表明用定点数格式显示变量cows的值。默认的格式为小数点后显示6位数。相关类型域的格式类型域
13、结果%f定点格式%e指数格式%d十进制格式若显示的数值是整数,则不包括尾部的0;若显示的数值是小数,则以指数形式显示%g以%f或%e中最紧凑形式显示%c字符格式(每次显示一个字符)%s字符串格式(显示完整的字符串)Matlab在执行完函数fprintf后不会自动重起一行。前述的命令行执行完后,在命令窗口中命令提示符紧跟在函数输出字符串的后面,并没有另起一行。若再次执行其它命令,则两次的输出结果会在同一行中显示出来。 cows=1:5;fprintf('There are %f cows in the pasture',cows) 如果需要分行显示,则在字符串后使用n进行换行。c
14、ows=1:5; fprintf('There are %f cows in the pasturen',cows) There are 1.000000 cows in the pastureThere are 2.000000 cows in the pastureThere are 3.000000 cows in the pastureThere are 4.000000 cows in the pastureThere are 5.000000 cows in the pasture特殊格式命令格 式 命 令功 能n换行r回车(和换行类似)t表格b退格width fi
15、eld 和 presicion field使用可选项width field和presicion field可以控制数据输出宽度和精度。width field必须是正的十进制整数,用于控制字符显示的最小宽度。presicion field必须以点(.)开始,用于确定指数或定点数中小数点后的数字位数。例如,%8.2说明字符显示的最小宽度是8位,小数点后有两位数字。cows=1:5;fprintf('There are %5.2f cows in the pasturen',cows)There are 1.00 cows in the pastureThere are 2.00 c
16、ows in the pastureThere are 3.00 cows in the pastureThere are 4.00 cows in the pastureThere are 5.00 cows in the pasture如果变量是二维矩阵,那么Matlab会按列重复执行fprintf命令。先输出第一列,然后是第二列,依次类推。feet=1:3;inches=feet.*12;把上面两个矩阵合并成一个矩阵table=feet;inches;fprintf(%4.0f %7.2f n,table)函数fprintf除了可以严格控制格式化输出数据外,函数fprintf还可以把数据
17、输出到文件中。首先建立输出文件,然后用函数fopen打开该文件,同时给打开的文件分配一个文件标识符(即文件的别名)。 file_id=fopen(my_output_file,wt) 其中,函数fopen的第一个输入参数是要打开的文件名。第二个输入参数是字符串wt,表示要对文件进行写的操作。如果能够正确打开这个输出文件,并且已经给该文件分配了文件标识符,就可以把这个文件标识符作为函数fprintf的第一个输入参数按照指定的格式把数据写入到文件中: fprintf(file_id,some example output is %4.2f n,pi*1000) 这种函数格式将下列字符串写入文件my
18、_output_file中。 Some example output is 3141.29 并且在命令窗口返回写入数据的字节数: ans=32练习:如何将上述实例的结果写入到指定txt文件中。cows=1:5; myfile=fopen('result.txt','wt') fprintf(myfile,'There are %5.2f cows in the pasturen',cows) 注意: 在使用fprintf时,初学者常犯的错误是忘记在占位符后输入域类型标识,如f,这样函数将不会正常工作,而且还不会给出错误提示。 若函数fprintf语句中包含百分号%,则需要输入两次%,其中第一个百分号%为占位符。 fprintf(The interest rate is %5.2f % n,5) 输出 The interest rate is 5.00%六、图形输入在Matlab中,允许以图形的方式输入坐标x和y的值。命令ginput允许用户在图形窗口中任选一点,并将该点的位置转换成确切的x和y坐标值。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论