MATLAB 8.5基础第6章 程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB程序设计就是编写M 文件,利用程序结构中的顺序语句、循环语句和分支语句,以及各自的流控制机制,相互配合,达到解决各种复杂问题的方法,使其在科学研究、实践操作中的应用更加深入。 本章重点 关系运算与逻辑运算 顺序语句 循环语句 分支语句 第六章 程序设计 6.1 运算符及其操作运算 在MATLAB编程中,除了经常使用的算术运算符外,还会遇到判断结构,即根据某种条件的数值0或者1而得出不同的结论,这就需要通过某种表达式来产生这种逻辑上的判断数值0或者1,而能够达到这种要求的就是关系运算符和逻辑运算符。 6.1.1 算术操作运算 MATLAB使用的算术运算符为:加(+)、减(-)、乘(*)、除(/)、左除(\)、幂(^),以及小括号(),其运算法则在数值计算章节中的数组运算和矩阵运算中都已介绍。具体内容参见数组运算指令(表2-3)和矩阵运算指令与含义(表2-5)。在算术操作过程中,可以随时使用MATLAB平台上提供的大量运算函数,如表2-2提供了常用的基本函数。 6.1.2 关系操作运算 关系操作运算是用关系运算符来实现,它可用来比较两个标量,或两个同样大小的数组,或一个数组和一个标量(实际是数组中的每一个元素与标量比较),比较结果产生0(逻辑假,false)或者1(逻辑真,ture)。 格式:a op b % a和b是算术表达式、变量、字符串等,op是一种关系运算符 常用的比较关系运算符如表6-1所示: 表 6-1 比较关系运算符及含义 关系运算符 含义 关系运算符 含义 关系运算符 含义 小于 == 等于 = 大于或等于 大于 ~= 不等于 = 小于或等于 6.1.3 逻辑操作运算 逻辑操作运算是由逻辑运算符来实现,主要是使用“与”、“或”将多个表达式组合在一起,或者是对关系式取反,具体格式可写为ab、a|b、~a等。 逻辑运算符及对应的含义,以及逻辑操作运算函数如表6-2所示。 表 6-2 逻辑运算符含义及函数表示 6.1.3 逻辑操作运算 逻辑操作运算法则如下: (1)ab或and(a,b):表示a和b作“元素逻辑与”运算。当a和b全为非零时,运算结果为1,否则为0。 (2)ab:表示a和b作“捷径逻辑与”运算。当a为逻辑真(1)时,才计算b的逻辑值;当a为逻辑假(0),则无需计算b的逻辑值,而直接返回逻辑假(0)。 (3)a|b或or(a,b):表示a和b作“元素逻辑或”运算。当a和b只要有一个非零,运算结果为1,否则为0。 (4)a||b:表示a和b作“元素逻辑或”运算。当a为逻辑假(0)时,才计算b的逻辑值;当a为逻辑真(1),则无需计算b的逻辑值,而直接返回逻辑真(1)。 (5)~a或not(a):表示对a作“逻辑非”运算,当a是零时,运算结果为1,否则为0; 6.1.3 逻辑操作运算 除了上述逻辑运算符及函数外,MATLAB还提供了其他逻辑运算函数。基本逻辑运算函数如下: (1)xor(x,y):异或运算函数,当x与y不同时,返回1;x与y相同时返回0。 (2)any(x):如果向量x中存在非零元素,则返回1,否则,返回0;如果矩阵x中每一列均有非零元素,则返回1,否则,返回0。 (3)all(x):如果向量x中所有元素非零,则返回1,否则,返回0;如果矩阵x中每一列所有元素非零,则返回1,否则,返回0。 6.1.4 运算符优先级 当多个运算符和变量写成一个MATLAB表达式时,运算符的优先次序必须明确。通常所有的运算符,算术运算符优先级最高,关系运算符次之,逻辑操作符的优先级最低。具体优先级次序在表6-3中依从上到下的顺序由高到低排序。同一行的各运算符具有相同的优先级,其运算符法则是在表达式中从左到右依次进行运算。若在不确定优先级情况下,建议采用小括号运算符来明确运算的先后顺序。 6.1.4 运算符优先级 6.2 向量化和预分配 1.向量化 为使MATLAB高效运行,在M文件中最好把算法向量化。即将程序语言中的for循环,可用向量或矩阵运算来代替。 譬如在求之和时,我们分别使用for循环语句和向量化编写程序如下: %for循环程序 s=0; for k=1:50 s=s+1/(2*k-1); k=k+1; end s %向量化程序 x=1:2:99; s=sum(1./x) 6.2 向量化和预分配 2.预分配 若一条代码无法向量化,可以事先将所要输出的结果进行预先分配,即预先给出存储空间,这样可以加快for循环。 譬如在矩阵内存预分配时,划定一个固定的内存块,各数据可直接按行、列存放到相应的位置。若矩阵中不进行预配置内存,则随着行数、列数的变大,MATLAB就必须不断地扩充维数,这样就会大大降低程序的执行效率。 6.3 顺序

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档