版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB程序设计,M文件编写与调试,交互式的命令行工作方式 M文件的程序工作方式,脚本文件(命令文件),函数文件,两类M文件,MATLAB两种工作方式,6.1 脚本文件,脚本文件(命令文件)是将需要运行的命令编辑到一个命令文件中。 在MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。 脚本文件没有输入参数,也不返回输出参数。,1. input函数:用于向计算机输入一个参数。 调用格式: A=input(提示信息,选项); 注:s选项,则允许用户输入一个字符串。 例如想输入一个人的姓名,可采用命令 xm=input(Whats your name:,s),数据的输入,【
2、例1】 求一元二次方程ax2 +bx+c=0的根。 a=input(a=?); b=input(b=?); c=input(c=?); d=b*b-4*a*c; x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a) 将该程序以a1.m文件存盘,然后运行a1.m文件。,2 pause函数:暂停程序的执行。 调用格式: pause(延迟秒数) 注:如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。,hold on % 图形迭加 axis(0,100,0,120); % 设置坐标轴 k=0;A=0,0; %导弹初始位置 B=0,100; %飞机
3、初始位置 v=1;dt=1; %离散时间改变量 d=100; %相距距离 while d0.5 plot(A(1),A(2), r.); %画导弹位置 plot(B(1),B(2), b*); %画飞机位置 pause(0.2); k=k+1; B=B+v*dt,0; %飞机移动位置 e=B-A; %导弹指向飞机向量 d=norm(e); e0=e/d; %取向量方向(单位化) A=A+2.0*v*dt*e0; %导弹追击位置 end,a2.m,【例2】,数据的输出,3 disp函数:命令窗口输出函数。 调用格式: disp(输出项) 注:输出项为字符串或矩阵。,【例3】 A=Hello,MA
4、TLAB; disp(A) %输出为: Hello,MATLAB,程序结构: 顺序结构 MatLab程序运算顺序 选择结构(分支结构)If 条件 , 表达式; else(if), 表达式; endSwitch 表达式, case 表达式,otherwise end 循环结构 For 变量=表达式, 循环语句; endWhile 条件,语句 ; end,6.1.1 MATLAB的程序结构,【例4】 if语句运用举例:输入三角形的三条边,求面积。,A=input(请输入三角形的三条边:); if A(1)+A(2)A(3) else disp(不能构成一个三角形。) end %运行: 请输入三角形
5、的三条边:4 5 6 a4.m,程序结构: if选择结构,【例5】 switch语句运用举例:根据变量 num 的值来决定显示的内容。,num=input(请输入一个数); switch num case -1 disp(I am a teacher.); case 0 disp(I am a student.); case 1 disp(You are a teacher.); otherwise disp(You are a student.); end,a5.m,程序结构: switch 选择结构,实现循环结构的语句: 1 for语句: 格式: for 循环变量=表达式1:表达式2:表达
6、式3 循环体语句 end 注:其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。 2 while语句 格式: while (条件) 循环体语句 end,程序结构:循环结构,【例6】循环语句应用举例:计算满足表达式 的最大y、n值。i为正整数。 y=0; i=1; while 1 %循环的条件为1。本例循环条件总是满足的,是个永真循环 f=1/(2*i-1); y=y+f; if y3 break; end i=i+1; end n=i-1 y=y-f,Break语句 break语句常用在for或while循环语句中,一般与if语句
7、一起使用。其作用是当满足if语句时,在循环尚未结束时跳出当前循环。在嵌套循环中,break只能跳出包含它的最内层循环。,程序结构: while循环结构,Continue 语句 continue也常和if语句一起用在for或while循环中。其作用是当满足if语句时跳过循环体内位于continue之后的那些尚未执行的语句,执行下一次循环的判断。(但不会跳出当前循环),循环的嵌套,如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。 多重循环的嵌套层数可以是任意的。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。,【
8、例7】多重循环结构举例:求100,1000以内的全部素数。,n=0; for m=100:1000 flag=1; j=m-1; i=2; while i=j %变量prime存放素数 end end prime,a7.m,程序结构: 多重循环结构,6.2 函数文件,函数文件:每一个函数文件都定义一个函数。MATLAB提供的标准函数大部分都是由函数文件定义的。函数文件可以输入参数,也可返回输出参数。,与脚本(命令)文件不同,函数文件犹如一个“黑箱”,把一些数据送入处理,再把结果送出来。MATLAB提供的函数指令大部分都是由函数文件组成。,1函数文件格式,函数文件由function语句引导,其格
9、式为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体 注:其中函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。如果输出形参个数多于1,则应该用方括号括起来。,2函数文件调用,函数调用的一般格式是: 输出实参表=函数名(输入实参表),function Yd=DYdt(t,Y) %输入量 global G ME % 定义全局变量 xy=Y(1:2);Vxy=Y(3:4); % ,global G ME G=6.672e-11;ME=5.97e24; . t,YY=ode45(DYdt,tspan,Y0); %采用4、5阶Runge-Ku
10、tta法,结构形式上: 函数文件的第一行总是以“function”引导,称为函数申明行。该行以关键字function开头,函数名以及函数的输入输出变量都在这一行被定义。 函数申明行之后以%开头的第一行称注释行。这行供lookfor关键字查询。 第一注释行及其之后的连续以%开头的所有注释行构成整个在线帮助文本。可通过help查询到,称为帮助文本区。 与在线帮助文本区相隔一个“空”行,也以%开头,标志编写及修改该M文件的作者和日期,称为编写和修改记录。 接下来是函数体。为清晰起见,它与前面的注释行以“空”格隔开。,6.2.1 函数文件的结构与特点,function Yd=DYdt(t,Y) %输入
11、量 global G ME % 定义全局变量 xy=Y(1:2);Vxy=Y(3:4); % r=sqrt(sum(xy.2); % Yd=Vxy;-G*ME*xy/r3; %计算Y(t),运行上与脚本文件运行不同 : -脚本文件运行后 ,所产生的所有变量都驻留在 MATLAB基本工作空间(Base workspace)中。只要用户不使用清除指令(clear), MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。 -函数文件运行时,MATLAB专门为它开辟一个临时工作空间,称为函数工作空间(Function workspace)。当执行文件最后一行指令时,就结束该函数文件的运行,同
12、时该临时函数工作空间及其所有的中间变量就会立即被清除。,6.2.1 函数文件的结构与特点,6.2.2 函数文件调用,调用格式:输出实参表=函数名(输入实参表) 函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。调用时先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。 函数调用可以嵌套,一个函数可以调用别的函数,甚至可以调用它自己(递归调用)。 文件名与函数名必须一一对应,这样才能保证调用成功。如果函数名和文件名不一致时以文件名为主,【例8】 编写函数文件求小于任意自然数n的 Fibonacci数列。,function f=ffib(n) %用于求Fibonacci数列的函数文件 %f=ffib(n) %1999年30日编 f=1,1; i=1; while f(i)+f(i+1)n f(i+2)=f(i)+f(i+1); i=i+1; end,将以上函数文件以文件名ffib.m存盘,然后在MATLAB命令窗口输入以下命令,可求小于2000的Fibonacci数: ffib(2000),函数文件编写与调用,【例9】 利用函数文件,实现直角坐标(x,y)与极坐标(,)之间的转换。,函数文件tran.m: function gama,theta=tran(x,y) g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粉末冶金成型工操作管理水平考核试卷含答案
- 矿压观测工班组建设知识考核试卷含答案
- 高压试验工安全专项水平考核试卷含答案
- 医药商品购销员安全强化考核试卷含答案
- 2025年引导信标机合作协议书
- 2026年1月24日河北省直机关选调面试真题及答案解析(上午卷)
- 狙击枪介绍课件
- 环境局业务培训课件模板
- 燃气安全隐患排查报告燃气安全隐患排查整治工作总结
- 物业公司小区保洁年度工作总结
- 中远海运集团笔试题目2026
- 2026年中国热带农业科学院橡胶研究所高层次人才引进备考题库含答案详解
- 妆造店化妆品管理制度规范
- 2025-2026学年四年级英语上册期末试题卷(含听力音频)
- 浙江省2026年1月普通高等学校招生全国统一考试英语试题(含答案含听力原文含音频)
- 2026届川庆钻探工程限公司高校毕业生春季招聘10人易考易错模拟试题(共500题)试卷后附参考答案
- 2023-2024学年贵州省遵义市小学语文六年级期末评估测试题详细参考答案解析
- 销售心理学全集(2022年-2023年)
- 变态反应课件
- 电力拖动控制线路与技能训练-教案
- 50年同学聚会邀请函(十二篇)
评论
0/150
提交评论