MATLAB8.5教程第6章程序设计.ppt

MATLAB8.5教程第6章程序设计.ppt

ID:52267675

大小:495.50 KB

页数:30页

时间:2020-04-03

MATLAB8.5教程第6章程序设计.ppt_第1页
MATLAB8.5教程第6章程序设计.ppt_第2页
MATLAB8.5教程第6章程序设计.ppt_第3页
MATLAB8.5教程第6章程序设计.ppt_第4页
MATLAB8.5教程第6章程序设计.ppt_第5页
资源描述:

《MATLAB8.5教程第6章程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MATLAB程序设计就是编写M文件,利用程序结构中的顺序语句、循环语句和分支语句,以及各自的流控制机制,相互配合,达到解决各种复杂问题的方法,使其在科学研究、实践操作中的应用更加深入。本章重点关系运算与逻辑运算顺序语句循环语句分支语句第六章程序设计6.1运算符及其操作运算在MATLAB编程中,除了经常使用的算术运算符外,还会遇到判断结构,即根据某种条件的数值0或者1而得出不同的结论,这就需要通过某种表达式来产生这种逻辑上的判断数值0或者1,而能够达到这种要求的就是关系运算符和逻辑运算符。6.1.1算术操作运算MATLAB使用的算术运算符为:加(+)、减(-)、乘(

2、*)、除(/)、左除()、幂(^),以及小括号(),其运算法则在数值计算章节中的数组运算和矩阵运算中都已介绍。具体内容参见数组运算指令(表2-3)和矩阵运算指令与含义(表2-5)。在算术操作过程中,可以随时使用MATLAB平台上提供的大量运算函数,如表2-2提供了常用的基本函数。6.1.2关系操作运算关系操作运算是用关系运算符来实现,它可用来比较两个标量,或两个同样大小的数组,或一个数组和一个标量(实际是数组中的每一个元素与标量比较),比较结果产生0(逻辑假,false)或者1(逻辑真,ture)。格式:aopb%a和b是算术表达式、变量、字符串等,op是一种关

3、系运算符常用的比较关系运算符如表6-1所示:表6-1比较关系运算符及含义关系运算符含义关系运算符含义关系运算符含义<小于==等于>=大于或等于>大于~=不等于<=小于或等于6.1.3逻辑操作运算逻辑操作运算是由逻辑运算符来实现,主要是使用“与”、“或”将多个表达式组合在一起,或者是对关系式取反,具体格式可写为a&b、a

4、b、~a等。逻辑运算符及对应的含义,以及逻辑操作运算函数如表6-2所示。表6-2逻辑运算符含义及函数表示逻辑运算符&&&

5、

6、

7、~含义元素逻辑与捷径逻辑与元素逻辑或捷径逻辑或逻辑非逻辑运算函数and(a,b)a,b逻辑标量or(a,b)a,b逻辑标量

8、not(a,b)6.1.3逻辑操作运算逻辑操作运算法则如下:(1)a&b或and(a,b):表示a和b作“元素逻辑与”运算。当a和b全为非零时,运算结果为1,否则为0。(2)a&&b:表示a和b作“捷径逻辑与”运算。当a为逻辑真(1)时,才计算b的逻辑值;当a为逻辑假(0),则无需计算b的逻辑值,而直接返回逻辑假(0)。(3)a

9、b或or(a,b):表示a和b作“元素逻辑或”运算。当a和b只要有一个非零,运算结果为1,否则为0。(4)a

10、

11、b:表示a和b作“元素逻辑或”运算。当a为逻辑假(0)时,才计算b的逻辑值;当a为逻辑真(1),则无需计算b的逻辑值,而直接返

12、回逻辑真(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运算符优先级

13、当多个运算符和变量写成一个MATLAB表达式时,运算符的优先次序必须明确。通常所有的运算符,算术运算符优先级最高,关系运算符次之,逻辑操作符的优先级最低。具体优先级次序在表6-3中依从上到下的顺序由高到低排序。同一行的各运算符具有相同的优先级,其运算符法则是在表达式中从左到右依次进行运算。若在不确定优先级情况下,建议采用小括号运算符来明确运算的先后顺序。6.1.4运算符优先级6.2向量化和预分配1.向量化为使MATLAB高效运行,在M文件中最好把算法向量化。即将程序语言中的for循环,可用向量或矩阵运算来代替。譬如在求之和时,我们分别使用for循环语句和向量化编写

14、程序如下:%for循环程序s=0;fork=1:50s=s+1/(2*k-1);k=k+1;ends%向量化程序>>x=1:2:99;>>s=sum(1./x)6.2向量化和预分配2.预分配若一条代码无法向量化,可以事先将所要输出的结果进行预先分配,即预先给出存储空间,这样可以加快for循环。譬如在矩阵内存预分配时,划定一个固定的内存块,各数据可直接按行、列存放到相应的位置。若矩阵中不进行预配置内存,则随着行数、列数的变大,MATLAB就必须不断地扩充维数,这样就会大大降低程序的执行效率。6.3顺序语句顺序语句是指依次按顺序执行程序的各条语句,它不需要任何特殊的流

15、控制。格式

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。