5MATLAB程序设计_第1页
5MATLAB程序设计_第2页
5MATLAB程序设计_第3页
5MATLAB程序设计_第4页
5MATLAB程序设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5 MATLAB程序设计 MATLAB语言简洁高效 被称为第四代编程语言 一 M文件 包含MATLAB代码的文件称为M文件 扩展名为 m M文件的形式 M文件有两种形式 独立的M文件 称命令文件 ScriptFile 可调用M文件 称函数文件 FunctionFile 1 命令文件 命令文件是一串指令的集合 没有输入输出参数 与在命令窗口逐行执行文件中的所有指令等价 例 绘制 花瓣 图案 一个用来绘制花瓣 flowerpetal 图案的命令文件theta pi 0 01 pi rho 1 2 sin 5 theta 2 rho 2 cos 10 theta 3 rho 3 sin theta 2 rho 4 5 cos 3 5 theta 3 fori 1 4polar theta rho i r pauseend 将该文本文件命名为petal m 并在指令窗口运行petal 将看到下面的图案 几点说明 若用户把petal m存放在d mywork中 那么在运行前 应在指令窗中运行cdd mywork或将其加入搜索路径petal运行后存放在内存中的变量 可以用whos看到 2 函数文件 如果M文件的第一行包含function 此文件就是函数文件 函数文件区别于命令文件之处是 命令文件中的变量在执行完后保存在内存中函数文件中的变量在执行完后将被清除函数文件有输入输出参数 命令文件没有 例 计算向量元素的平均值functiony average x 本函数计算向量元素的平均值y sum x length x 计算过程 几点说明 第一行执行指令的作用 指明该文件是函数文件 定义函数名 输入参数和输出参数 M文件的文件名必须是 m在M文件前的几行注释可供help命令查询 二 数据结构 例 字符变量的输入和检查 a thisisastring isstr a ans 1其他可能的取值还有 char double sparse 三 程序结构 MATLAB有顺序 循环和分支3种基本程序结构 循环由while和for语句实现 分支由if和switch语句实现 语法为 fori 表达式 表达式为一个向量 可执行语句 end 例 利用for循环求1 3 9的值s 0 fori 1 2 9s s i end s 25 1 for end循环 for循环的嵌套 例 利用for循环求1 2 3 5 的值s 0 fori 1 5pdr 1 fork 1 ipdr pdr k ends s pdr end s 153 2 while end循环 while循环将循环体中的语句循环执行不定次数 语法为 while表达式 循环体语句 end 表达式一般是由逻辑运算和关系运算以及一般运算组成的 以判断循环的进行和停止 只要表达式的值非0 继续循环 直到表达式值为0 循环停止 例 用while循环求1 100间整数的和s 0 i 1 whilei 100s s i i i 1 endss 5050 3 分支结构 if else end语句有3种形式 if表达式执行语句end if表达式 是语句1else 否语句2end if表达式1语句1elseif表达式2语句2elseif表达式3语句3 else语句nend 多分支结构 例 编写函数 计算函数值x x 10 ifx 10y 3 x 11 elseifx 1y 2 x 1 elsey x end switch语句 switch表达式case表达式1语句1case表达式2语句2 case表达式n语句notherwise语句end 例 switch函数的例子yunsuan 乘 switchyunsuancase 加 减 disp 加减运算 case 乘 除 disp 乘除运算 otherwisedisp 其他运算 end 四 程序流控制 input 提示用户从键盘输入数值 字符串 表达式 例 n input Howmanyapples Howmanyapples 5n 5pause 暂停 等待用户响应 并在继续执行前按任一个键 pause n 暂停n秒 break 中断for while循环语句的执行 在嵌套循环结构中 break从最里层循环退出 例 求 100 200 之间第一个能被21整除的整数 forn 100 200ifrem n 21 0continueendbreakendn 五 函数调用 在MATLAB中 调用函数的常用形式是 输出参数1 输出参数2 函数名 输入参数1 输入参数2 注意 函数调用时各参数出现的顺序 应该与函数定义时的顺序一样 否则出错 函数调用可以嵌套 一个函数可以调用别的函数 甚至它自己 即递归调用 例 用递归调用形式计算n的阶乘functionf factor n factor m计算n的阶乘ifn 1f 1 return elsef n factor n 1 end factor 5 ans 120 六 M文件的调试 MATLAB提供了M文件的调试功能 可以对M文件进行调试 调试的作用 可以帮助用户确定程序代码中的错误可以在函数运行期间的任何时刻查看变量值可以查看函数调用的栈管理以及逐行地运行M文件 程序调试 语法错误这类错误包括函数名拼写和括号遗漏等错误 这类错误在运行时 MATLAB系统自己可以检测到 并会指出错误的行号 运行错误这类错误通常是算法错误 在语法上正确但会导致不正确的计算结果 MATLAB系统不会发现出错的地方 必须予以调试 练习1 1 利用for循环求s 1 1 2 1 3 1 4 1 99 1 100的值 2 生成向量x 1 2 100 计算sum 1 x 3 根据求的近似值 当n分别取100 1000 10000时 结果分别是多少 要求 分别用循环语句和向量运算 sum函数 实现 练习2 1 根据 求 1 y 3时的最大n值 2 与 1 的n值对应的y值 2 考虑迭代公式 其中a b为正的常数 取初值 迭代中止条件为 且迭代次数不超过500次 编写程序求当 a b 的值取 1 1 8 3 10 0 1 时的迭代结果 并和准确值比较 练习3 1 分别用if语句和switch语句实现以下计算 其中a b c的值从键盘输入 2 某公司员工的工资计算方法如下 1 工作时数超过120小时者 超过部分加发15 2 工作时数低于60小时者 扣发500元 3 其余按每小时85元计算 试编程要求输入工作时数 计算并输出应发工资 练习4 1 编写函数 输入圆的半径 输出圆的面积 2 编写函数文件 输入参数为n 输出参数为Fibnacci

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论