matlab编程入门基础.ppt_第1页
matlab编程入门基础.ppt_第2页
matlab编程入门基础.ppt_第3页
matlab编程入门基础.ppt_第4页
matlab编程入门基础.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

数学实验 Matlab编程入门 一 Matlab编程入门 Matlab作为一种广泛应用于科学计算的工具软件 不仅具有强大的数值计算能力和丰富的绘图功能 同时也可以与C FORTRAN等高级语言一样进行程序设计利用Matlab的程序控制功能 将相关Matlab命令编成程序存储在一个文件中 M文件 然后在命令窗口中运行该文件 Matlab就会自动依次执行文件中的命令 直到全部命令执行完毕在Matlab程序设计中 要充分利用Matlab数据结构的特点 提高编程效率 Matlab编程简介 M文件介绍 主要内容 Matlab编程基础 算术运算 关系运算 逻辑运算控制结构 顺序结构 选择结构 循环结构 用Matlab语言编写的程序称为M文件M文件以 m为扩展名M文件是由若干Matlab命令组合在一起构成的 它可以完成某些操作 也可以实现某种算法 M文件 M文件介绍 M文件的创建的与编辑M文件是文本文件 可以用任何文本编辑器来建立和编辑 通常使用Matlab自带的M文件编辑器 M文件 在命令窗口中输入fcs 即可执行该M文件 例 编写M文件 将华氏温度转化为摄氏温度 编程示例 M文件运行所产生的变量都驻留在Matlab当前工作空间百分号是注释符M文件必须在当前工作目录下或已存的搜索路径下才能运行 M文件介绍 主要内容 Matlab编程基础 算术运算 关系运算 逻辑运算控制结构 顺序结构 选择结构 循环结构 关系运算 比较大小 如果结论是真则返回1 否则返回0 注意 与 的区别 关系操作符可以比较两个同样大小的数组 或用来比较一个数组和一个标量 在后一种情况 标量和数组中的每一个元素相比较 比较结果与数组大小一样 关系运算符 例 关系运算举例 2 2 4 2 3 A 135 206 B 310 246 A B x 50 42 x 4 逻辑运算 逻辑运算符 A B等价于and A B A B等价于or A B A等价于not A 逻辑运算 逻辑运算符 Matlab中的逻辑运算 与 与 的区别如下 A B 1 首先判断A的逻辑值 然后判断B的值 然后进行逻辑与的计算 2 A和B可以为矩阵 e g A 10 B 00 A B 1 首先判断A的逻辑值 如果A的值为假 就可以判断整个表达式的值为假 就不需要再判断B的值 2 A和B不能是矩阵 只能是标量 与 同理 逻辑运算 逻辑运算符 A B首先判断A的逻辑值 如果A的值为假 就可以判断整个表达式的值为假 就不需要再判断B的值 这种用法非常有用 如果A是一个计算量较小的函数 B是一个计算量较大的函数 那么首先判断A对减少计算量是有好处的 另外这也可以防止类似被0除的错误 flag denum 0 num denum 10ifflag DoSomethingend 上面的表达式就可以防止denum等于0的情况 当然 如果你希望在判断的时候 对A和B表达式都进行计算 就应该使用标准的 或者 Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short circuit形式 逻辑运算 逻辑运算符 ifflag denum 0 num denum 10 DoSomethingend与ifflag denum 0 num denum 10 DoSomethingend执行的结果一样 逻辑运算表 在Matlab中 0表示 假 非零表示 真 all x 如果向量X中所有元素都非零 则返回1 否则返回0 若x为矩阵 则any和all按列运算 返回一个0 1向量 逻辑运算 相关函数 any x 如果向量X中存在非零元素 则返回1 否则返回0 一些测试函数 isfinite 5 isinf 5 运算优先级 高 低 M文件介绍 主要内容 Matlab编程基础 算术运算 关系运算 逻辑运算控制结构 顺序结构 数据输入输出 input disp fprintf等 选择结构 if语句 switch语句循环结构 for循环 while循环 程序控制结构有三种 顺序结构 选择结构和循环结构任何复杂的程序都由这三种基本结构组成 M文件控制流 顺序结构 数据的输入 input A input 提示信息 其中提示信息为字符串 该命令要求用户输入A的值 可以是数或字符串 input disp X 输出变量X的值 X可以是数值矩阵或字符串一次只能输出一个变量 B 123 456 789 disp B disp 数据的输出 disp fprintf fprintf fid format variables 数据的格式化输出 fprintf 按指定的格式将变量的值输出到屏幕或指定的文件fid为文件句柄 若缺省 则输出到屏幕上format用来指定数据输出时采用的格式 包含 普通字符串 格式字符串 转义字符 fprintf a Hello b 2 4 c 100 pi fprintf a s b f c e n a b c 例 format中的格式字符串要与输出变量一一对应 可以没有输出变量 fprintf TodayisMonday n 例 pause 暂停 pause pause或pause n 若想强行终止正常运行的程序 可以使用Ctrl c 其中n是暂停的时间 以秒为单位若缺省 则将暂停程序 直到用户按任意键后继续 pauseoff屏蔽程序中所有pause的作用pauseon打开pause的作用 选择结构是根据给定的条件成立或不成立 分别执行不同的语句 Matlab用于实现选择结构的语句有if语句和switch语句 选择结构 单分支结构 ifexpr 条件 语句组Aend if条件语句 ifexpr 条件 语句组Aelse语句组Bend 双分支结构 ifexpr1 条件1 语句组Aelseifexpr2 条件2 语句组B elseifexprm 条件m 语句组melse语句组end 多分支结构 if条件语句 根据表达式的不同取值 分别执行不同的语句 switchexpr 表达式 casevalue1 表达式1 语句组1casevalue2 表达式2 语句组2 casevaluem 表达式m 语句组motherwise语句组end switch语句 Matlab首先计算expression的值 然后将它依次与各个case指令后的检测值进行比较 当比较结果为真时 就执行相应的语句组 然后跳出switch结构 switch后面的表达式expression的值可以是一个标量或字符串 switch语句 otherwise指令可以不出现 如果所有的比较结果都为假 则执行otherwise后面的语句组 然后跳出switch结构 关于switch语句的几点注解 选择结构的语法格式与C语言对照 MATLAB ifa bifc dmatlab c elsematlab c pascal matlab endend C if a b if c d matlab c else matalb c pascal matlab MATLAB C switch表达式 标量或字符串 switch表达式 标量或字符串 case常量表达式 case常量表达式 语句 语句 break case常量表达式2case常量表达式2 语句2语句 break otherwise defaultdefault 语句n语句n end 选择结构的语法格式与C语言对照 循环结构是按照给定的条件 重复执行指定的语句 Matlab用于实现循环结构的语句有for语句和while语句 循环结构 forvar expr循环体end 循环变量 表达式expr可以是行向量 也可以是矩阵 for循环 clear y 0 n 100 fork 1 ny y 1 2 k 1 end 循环语句可以嵌套使用 while循环 whileexpr 条件 循环体end 不能在for循环体内改变循环变量的值 为了提高代码的运行效率 应尽可能提高代码的向量化程度 避免for循环的使用 如果预先就知道循环的次数 则可以采用for循环 否则 如果预先无法确定循环的次数 则可以使用while循环 循环结构的语法格式与C语言对照 MatlabCwhilea bwhile a b c c 1 c 1 end while循环的格式为 for循环的格式为 MatlabCfori 1 2 100for i 1 i 100 i i 2 c i c i 1 endc i c i 1 MATLAB中循环变量的步长缺省值是 步长可以在正实数或负实数范围内任意指定 循环变量的值大于 步长为负数时小于 终止值时 循环结束 循环结构的语法格式与C语言对照 break和continue break语句用于终止循环的执行 即跳出最内层循环continue语句用于结束本次循环 进行下一次循环break和continue一般与if语句配合使用 其它流控制语句 编程示例 数论中的一个有趣问题 3n 1问题 任取一个正整数 如果是偶数 用2除 如果是奇数 用3乘再加1 反复这个过程 直到所得到的数为1 问 是否存在使该过程永不中止的整数 例 while1n input Pleaseentern nonpositivequit ifn1ifrem n 2 0n n 2 elsen 3 n 1 endfprintf nn d n endfprintf nn disnotweneed continue n nt end 编程示例 这个例子给出了计算eps的一种方法 这里我们用大写EPS 因此系统中eps的值不会被覆盖 当EPS eps时 条件仍成立 而当EPS eps 2时 条件为假 退出循环 所以最后应有EPS eps 2 num用来记录循环次数 计算Matlab中eps值 while编程示例 num 0 EPS 1 while 1 EPS 1EPS EPS 2 num num 1 end 例 练习 使用循环 判断等语句进行下列计算 1 2 求出y x sin x 在0 x 100的每个峰值 首先由计算机随机产生一个 0 100 之间的一个整数 然后由用户猜测所产生的这个数 根据用户猜测的情况给出不同的提示 如果猜测的数大于产生的数 则显示Higher 小于则显示Lower 等于则显示Youwon 同时退出游戏 用户最多有7次机会 游戏编程 猜数游

温馨提示

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

评论

0/150

提交评论