2019年-matlab7教程课件第7章程序设计-文档资料-PPT精选文档_图文

MATLAB 7.0从入 门到精通

主要讲述内容
? 第1章 MATLAB简介 ? 第2章 数值运算 ? 第3章 单元数组和结构 ? 第4章 字符串 ? 第5章 符号运算 ? 第6章 MATLAB绘图基础 ? 第7章 程序设计 ? 第8章 计算方法的MATLAB实现 ? 第9章 优化设计 ? 第10章 Simulink仿真初探

第7章 程序设计
? MATLAB作为一种广泛应用于科学计算的工具
软件,不仅具有强大的数值计算、符号计算、 矩阵运算的能力和丰富的绘图功能,还可以像 C语言、FORTRAN等计算机高级语言一样进行 程序设计,编写扩展名为.m的M文件,实现各 种复杂的运算,同时MATLAB自带的许多函数 就是M文件函数,用户也可以利用M文件来生 成和扩充自己的函数库。

? 7.1 脚本和函数
? 所谓M文件,简单来说就是用户把要实现的命令
写在一个以.m作为扩展名的文件中,然后由 MATLAB系统进行解释,最后运行出结果。
? M文件有函数和脚本两种格式。两者只是在语法
和使用上有些不同。脚本式M文件没有输入参数 或输出参数,而函数式M文件有输入参数和输出 参数;函数可以有零个或多个输入或输出变量。

? 7.1.1脚本
? 脚本是一个扩展名为.m的文件,其中包含了
MATLAB的各种命令,与批处理文件很类似,在 MATLAB命令窗口下直接输入此文件的主文件名, MATLAB可逐一执行在此文件内的所有命令,和 在命令窗口逐行输入这些命令一样。脚本式M文 件运行产生的所有变量都是全局变量,运行脚本 后,所产生的所有变量都驻留在MATLAB基本工 作空间,只要用户不使用clear命令加以清除,且 MATLAB指令窗口不关闭,这些变量将一直保存。 基本空间随MATLAB的启动而产生,在关闭 MATLAB软件时该基本空间被删除。
? 例:huitu0

? 7.1.2函数
? MATLAB中许多常用的函数都是函数式M文件,
使用时,MATLAB获取传递给它的变量,利用操 作系统所给的输入,运算得到要求的结果,然后 返回这些结果。函数文件类似于一个黑箱,由函 数执行的命令以及这些命令所创建的中间变量都 是隐含的。运算过程中的中间变量都是局部变量 (除特别声明外),存放在函数本身的工作空间内, 不会和MATLAB基本工作空间的变量相互覆盖, 对用户来说,可见的只是输入和输出,因此易于 使程序模块化,特别适合于大型程序代码。
? 例:huitu

? 7.2 M文件的程序结构
? 一般来讲,决定程序结构的语句可分为顺序
语句、循环语句和分支语句三种。
? 1、顺序语句
? 顺序语句就是依次顺序执行程序的各条语句,
这种语句不需要任何特殊的流程控制。
? 例:jizhi.m

? 2、循环语句
? (1)for循环 ? for 循环变量=数组 ? 循环体; ? end ? 例:for1,specmat(n)

? (2)while循环 ? while 表达式 ? 循环体; ? n+1 ? end ? 例:while1

? 例:for2和while2

? >> while2 ? Enter the first value:1 ? Enter the first value:3 ? Enter the first value:5 ? Enter the first value:7 ? Enter the first value:9 ? Enter the first value:0 ? Enter the first value:-1 ? The mean of this data set is:4.166667 ? The standard deviation is:3.488075 ? The number of data is:6

? >> for2 ? Enter the number of the points:6 ? Enter the value:1 ? Enter the value:3 ? Enter the value:5 ? Enter the value:7 ? Enter the value:9 ? Enter the value:0 ? The mean of this data set is:4.166667 ? The standard deviation is:3.488075 ? The number of data is:6

? 3、条件语句 ? (1)if-else-end ? if条件式1 ? 表达式1; ? elseif条件式2 ? 表达式2; ? ... ? else ? 表达式n; ? end ? 例:ff。可用plot(x,ff(x))绘分段函数图。

? x1=-2:0.01:0; ? x2=0.5:0.01:5; ? x3=5.01:0.01:10; ? x4=10.01:0.01:12; ? plot(x1,ff(x1)) ? hold on ? plot(x2,ff(x2)) ? hold on ? plot(x3,ff(x3)) ? hold on ? plot(x4,ff(x4)) ? grid on

? (2)switch-case-otherwise ? swith expression ? case value1 ? statements1; ? ... ? case valuen ? statementsn; ? otherwise ? statements; ? end ? 例:fm

? 综合实例,仿真小球轨迹。题目要求如下,
程序为ball.m。

? >> ball ? Enter the initial velocity:20 ? Range versus angle theta: ? 0 0.0000 ? 5 7.0732 ? 10 13.9316 ? 15 20.3666 ? 20 26.1828 ? 25 31.2034 ? 30 35.2760 ? 35 38.2767 ? 40 40.1144 ? 45 40.7332 ? 50 40.1144 ? 55 38.2767 ? 60 35.2760 ? 65 31.2034 ? 70 26.1828 ? 75 20.3666 ? 80 13.9316 ? 85 7.0732 ? 90 0.0000 ? Max ranges is 40.7332 at 45 degrees.

? >> ball ? Enter the initial velocity:40 ? Range versus angle theta: ? 0 0.0000 ? 5 28.2930 ? 10 55.7263 ? 15 81.4664 ? 20 104.7312 ? 25 124.8138 ? 30 141.1039 ? 35 153.1067 ? 40 160.4575 ? 45 162.9328 ? 50 160.4575 ? 55 153.1067 ? 60 141.1039 ? 65 124.8138 ? 70 104.7312 ? 75 81.4664 ? 80 55.7263 ? 85 28.2930 ? 90 0.0000 ? Max ranges is 162.9328 at 45 degrees.

? 7.3 程序流控制
? 1、continue命令的作用是结束本次循环,即
跳过循环体中尚未执行的语句,接着进行下一 次是否执行循环的判断。(当条件满足时, continue语句才被调用,跳出后面的语句,循 环继续,条件不满足则继续执行后面的程序。)
? 例:continue1、continue11

? 2、break命令的作用是终止本次循环,跳出最
内层循环,即不必等到循环的结束而是根据条 件退出循环,用法与continue类似,常常和条 件语句合用来强制终止循环。(当条件满足时, break语句才被调用,系统将在循环尚未结束 时跳出当前循环,条件不满足则继续执行后面 的程序。)
? 例:break1、jitu

? 3、return命令可使正常运行的函数正常退
出,并返回调用它的函数继续运行,经常用 于函数的末尾以正常结束函数的运行,也可 用在某条件满足时强行结束执行该函数。
? 例:dreturn

? 4、echo命令能实现M文件在执行过程中每条命
令的显示。
? 脚本文件: ? echo on显示其后执行的文件指令 ? echo off不显示其后执行的文件指令 ? 函数文件: ? echo filename on使filename指定的M文件执行的
命令显示出来
? echo filename off使filename指定的M文件执行的
命令不显示出来
? echo on all其后所有M文件执行的命令显示出来 ? echo off all其后所有M文件执行的命令不显示出


? 5、error指令用来指示出错信息并终止当前
函数的运行。
? error(‘message’)
? 类似的是warning,区别是warning之后程序
继续运行。

? 6、try...catch与error类似,用于对异常情况
处理
? try ? (commands1), ? catch ? (commands2), ? end
? 组命令1总被执行,当执行出现错误时,catch
控制块就可捕获它,执行组命令2,针对不同 错误类型进行不同的处理。可用lasterr函数查 询出错原因。

? 例:chucuo ? 执行结果: ? a_end =
? 492 ? ans = ? Attempted to access a(4,:); index out of
bounds because size(a)=[3,3].
? 注意try和catch控制块中的语句之间用逗号隔
开。

? 7、input命令用来提示用户从键盘输入数据、
字符串或表达式,并接受输入值。
? r=input(‘prompt’)在屏幕上显示提示信息
prompt,等待用户输入,并将值赋给r,直接 回车则输出空矩阵。
? r=input(‘prompt’,’s’)返回的字符串作为文本变
量而不作为变量名或者数值。
? 例:test

? 8、pause命令用于暂时终止程序的运行,
等待用户按任意键继续进行。
? pause暂停M文件的执行,按任意键继续 ? pause(n)终止程序n秒,n是任意实数 ? pause on允许后面的pause命令起作用 ? pause off使后面的pause命令不起作用 ? 例:pause1

? 7.4脚本文件
? 脚本文件只是逐条的解释文件中的程序条,
与命令窗口直接输入一样,只是它具有了存 储能力,且可以方便的多次运行该程序段, 在命令窗口中只需输入存储的文件名即可, 且存储的文件名没有特殊要求。脚本文件中 可以调用函数,只需调用函数名即可。
? 例:zitu、quzhi、xunzhi、duozhou、
jiemyfun。

? 7.5函数文件 ? 函数的格式必须加function,并且M文件的存
储名必须与函数名相同。一般函数都有输入 和输出。
? 例:sintu、fenduan1。


相关文档

matlab7教程课件第7章程序设计-文档资料
matlab7教程课件第4章字符串-PPT文档资料
2019年-Matlab7.x教学课件第7章仿真-PPT精选文档
Matlab7.x教学课件第7章仿真-PPT文档资料
2019年-Visual C#2019程序设计与应用教程课件第3章_流程控制-PPT文档资料-PPT精选文档
2019年-C语言程序设计PPT课件第2章 C数据类型-PPT文档资料-PPT精选文档
2019年最新-C语言程序设计PPT课件第10章 字符串-PPT文档资料-精选文档
2019年-Access基础与应用教程PPT课件 第9章 VBA的数据库编程-PPT精选文档
2019年-Visual C#2019程序设计与应用教程课件第4章_数组与字符串-文档资料-PPT精选文档
2019年-VB程序设计基础全套课件VB教程第3章教案-PPT精选文档
电脑版