




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第3章MATLAB程序设计 2 Matlab语言称为第四代编程语言 程序简洁 可读性很强而且调试十分容易 是Matlab的重要组成部分 3 一 matlab的工作模式 命令行模式 指令驱动模式 命令行操作时 matlab窗口只允许一次执行一行上的一个或几个语句 在matlab窗口输入数据和命令进行计算时 当处理复杂问题和大量数据时是不方便的 命令行方式程序可读性差 而且不能存储 对于复杂的问题 应编写成能存储的程序文件 4 m文件模式将matlab语句构成的程序存储成以m为扩展名的文件 然后再执行该程序文件 这种工作模式称为程序文件模式 程序文件不能在指令窗口下建立 因为指令窗口只允许一次执行一行上的一个或几个语句 5 二 m文件的创建 m文件的类型是普通的文本文件 我们可以使用系统认可的文本文件编辑器来建立m文件 具体的创建方法 在matlab命令窗口点击file菜单new m file 6 7 2 m文件m文件的语法类似于c语言 但又有其自身特点 m文件有两类 独立的m文件 称命令文件 可调用m文件 称函数文件 1 命令文件 独立的m文件命令文件实际上是一串指令的集合 与在命令窗口逐行执行文件中的所有指令 其结果是一样的 没有输入输出参数 8 命令文件包括两部分 注释文件和程序文件 RANKNumberoflinearlyindependentrowsorcolumns K RANK X isthenumberofsingularvaluesofX thatarelargerthanMAX SIZE X NORM X EPS K RANK X tol isthenumberofsingularvaluesofXthatarelargerthantol Copyright c 1984 94byTheMathWorks Inc s svd x if nargin 1 tol max size x max s eps endr sum s tol 程序部分 9 2 matlab内置函数文件matlab自定义的函数文件称内置函数文件调用内置函数的方法 使用函数名并给出相应的入口 出口参数即可 例如 sin m函数 调用格式 y sin 2 x 实际应用中 x 0 2 pi 180 2 pi y sin 2 x plot x y 10 又如sqrt x 求x的平方根abs x 求x的绝对值det a 求行列式的值等等 matlab拥有大量的内置数学函数 供我们在数值运算和符号运算中调用 11 3 函数m文件 需要输入变量 返回输出变量 matlab用户可以根据需要编辑自己的m文件 它们可以像库函数一样方便的调用 从而极大地扩展了matlab的能力 12 函数m文件的格式 function返回变量 函数名 输入变量 注释说明语句段程序语句段特定规则 函数m文件第一行必须以单词function作为引导词 必须遵循如下形式 function m文件的文件名必须是 m 程序中的变量均为局部变量 不保存在工作空间中 其变量只在函数运行期间有效 13 14 15 MATLAB程序结构 按照程序设计的观点 任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合来实现 顺序结构 程序按程序语句或模块在执行流中的顺序逐个执行 选择结构 程序按设定的条件实现程序执行流的多路分支 循环结构 程序按给定的条件重复地执行指定的程序段或模块 16 1顺序结构 程序模块1 程序模块2 MATLAB中实现顺序结构的方法非常简单 只需将程序语句顺序排列即可 17 2选择结构 在MATLAB中 选择结构由两种语句结构实现 if语句switch语句 条件 程序模块1 成立 不成立 程序模块2 18 if语句 if表达式程序模块1else程序模块2end 19 if语句的两种变形 1 单分支if语句 只有一个分支的选择结构if表达式程序模块end 2 多分支if语句 超过2个的选择if表达式1程序模块1elseif表达式2程序模块2 elseif表达式n程序模块nelse程序模块n 1end 20 例 将百分制的学生成绩转换为五级制的成绩输出 clearn input 输入n ifn 90r A elseifn 80r B elseifn 70r C elseifn 60r D elser E end 运行结果 输入n 87r B 21 在条件表达式中 通常都是由关系操作符 等逻辑操作符 等逻辑函数 isequal 若是相等则为真isempty 若是空矩阵则为真isstr 若是字符串则为真例 编写m函数 计算函数值x x 10 22 2 switch语句 switch表达式case数值1程序模块1 case数值2程序模块2 otherwise程序模块n end 23 例 将百分制的学生成绩转换为五级制的成绩输出 使用switch语句 clearn input 输入n switchfix n 10 case 10 9 r A case8r B case7r C case6r D otherwiser E end 运行结果 输入n 65r D 24 3 2 3循环结构 在MATLAB中 循环结构可以由两种语句结构实现 for语句循环结构while语句循环结构 程序模块 不成立 成立 条件 25 1 for语句循环结构 for循环变量 起始值 步长 终止值循环体end 26 例 使用for结构计算1 2 3 100 clearsum 0 fori 1 100sum sum i endsum 运行结果 sum 5050 27 有一周期为4 的正弦波上叠加了方差为0 1的正态分布的随机噪声的信号 用循环结构编制一个三点线性滑动平均的程序 提示 用0 1 randn 1 n 产生方差为0 1的正态分布的随机噪声 三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据 如x1 2 x 1 x 2 x 3 3 x1 3 x 2 x 3 x 4 3 28 2 while语句循环结构 while表达式循环体end 29 例 使用while结构计算1 2 3 100 clearsum 0 i 0 whilei 100i i 1 sum sum i endsum 运行结果 sum 5050 30 牛刀小试 编制一个解数论问题的函数文件 取任意整数 若是偶数 则用2除 否则乘3加1 重复此过程 直到整数变为1 31 echo指令 用来控制m文件在执行过程中是否显示echoon 打开所有命令文件的显示方式echooff 关闭所有命令文件的显示方式echo 在以上两者间切换 32 input 提示用户从键盘输入数值 字符串 表达式 例 n input Howmanyapples Howmanyapples 5n 5pause 暂停 等待用户响应可令m文件执行暂停 并在继续执行前按任一个键 33 keyboard 与input类似 功能更强keyboard调用键盘与调用m文件一样 当keyboard在m文件中出现时 它停止文件的执行并控制键盘 用于修改程序 break 中断break中断for while循环语句的执行 在嵌套循环结构中 break进从最里层循环推出 34 代码运行的计时方法 整段代码的计时tic toc表示计算tic到toc之间的时间 例如 tica rand 300 随机生成300 x300的矩阵inv a 求逆矩阵toc 35 etime t1 t2 来计算t1 t2之间的时间差来完成计时 其中时差 t1 t2 例如 t0 clocka rand 300 inv a elapsed time etime clock t0 elapsed time指流逝过的时间同理可以使用cputime来计时t cputime your operation cputime t 36 七 程序代码优化 1 尽量不要使用循环 而使用矩阵结构来进行运算 例 t0 cputimen 100000 sum 0 fori 1 nsum sum 1 iendsumt1 cputime t0 37 而如果使用向量 矩阵和系统内部函数ticn 100000 a 1 n total cumsum 1 a toc cumsum函数实现累计求和 38 八 文件操作 matlab文件输入 输出 I O 函数允许把其它格式的数据文件直接读进matlab 它是以c语言文件I O函数为基础的 文件数据格式有两种形式 一是二进制文件 二是文本文件 在打开文件时需要进一步指定文件格式类型 即指定是二进制文件还是文本文件 39 1 打开和关闭文件 fopen fclose 格式 fid fopen 数据文件名 打开方式 r 表示对打开的文件读数据 w 表示对打开的文件写数据 a 表示在打开的文件末尾添加数据fid用于存储文件句柄值 句柄值用来标识该数据文件 其他函数可以利用它对该数据文件进行操作 40 文件一旦打开 即可进行读写操作 操作完后应及时关闭 使用fclose函数 sta fclose fid 关闭上述打开文件该函数关闭fid所表示的文件 sta表示关闭文件操作的返回代码 若关闭成功 返回0 否则返回 1 sta fclose all 关闭所有打开的文件 41 2 读写二进制数据文件fread fwrite 可读写数据文件 文本文件 例 fid fopen user dat r a fread fid 50 sta fclose fid 其中fread的调用格式为 A COUNT fread fid size precision 其中A用于存放读取的数据 COUNT返回所读取的数据元素个数 fid为文件句柄 size为可选项 若不选用则读取整个文件内容 若选用则它的值可以是下列值 fread list sizeof char 25 file 42 1 N表示读取N个元素到一个列向量 2 Inf表示读取整个文件 3 M N 表示读数据到M N的矩阵中 数据按列存放 precision代表读写数据的类型2 写二进制文件fwrite函数按照指定的数据类型将矩阵中的元素写入到文件中 其调用格式为 COUNT fwrite fid A precision 其中COUNT返回所写的数据元素个数 fid为文件句柄 A用来存放写入文件的数据 precision用于控制所写数据的类型 其形式与fread函数相同 43 例 建立一数据文件magic5 dat 用于存放5阶魔方阵 程序如下 fid fopen magic5 dat w cnt fwrite fid magic 5 int32 fclose fid 44 也可以直接导入数据txt文件file importdata next finish例如 work目录下建立一个hello txt 复制如下数据 你好欢迎来到太原理工大学请访问如下网址 11111111112222222222333333333344444444445555555555 45 应用举例 求1 2 3 5 的值clearsum 0 fori 1 5pdr 1 fork 1 ipdr pdr k endsum sum pdr endsum 运行结果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粮库仓储面试题库及答案
- 乐清电厂面试题库及答案
- 科技教育面试题库及答案
- 康缘药业面试题库及答案
- 农业产业园项目2025年农业资源循环利用效益研究报告
- 2025年智能垃圾分类处理系统项目在商业区的可行性及运营模式研究报告
- 垃圾填埋气发电技术2025年展望:技术创新与碳减排效应评估
- 2025年金融行业数据治理与隐私保护技术合作与交流现状与展望研究报告
- 安全教育培训记录
- 安全教育培训计划小班课件
- 船舶概论课件
- 篮球训练营规章制度范本
- 园林给排水工程
- Rexroth (博世力士乐)VFC 3610系列变频器使用说明书
- ×××学校“学校学生资助管理机构成立文件”
- 动词过去式和过去分词的变化规则练习及答案
- 第四章 土壤污染调查与风险评价
- GB/T 9877-2008液压传动旋转轴唇形密封圈设计规范
- 共享服务中心(HRSSC)课件
- 工程结构检测鉴定与加固第1章工程结构检测鉴定与加固概论课件
- 数字色彩课件
评论
0/150
提交评论