第三章 Matlab程序设计.doc

上传人:11****ws 文档编号:3128853 上传时间:2019-05-22 格式:DOC 页数:4 大小:45.50KB
下载 相关 举报
第三章 Matlab程序设计.doc_第1页
第1页 / 共4页
第三章 Matlab程序设计.doc_第2页
第2页 / 共4页
第三章 Matlab程序设计.doc_第3页
第3页 / 共4页
第三章 Matlab程序设计.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、第三章 Matlab 程序设计前面介绍了 M 文件的概念和组成,看到了一些用 MATLAB 语言编写的简单程序要想实现更强的功能,需要用到循环控制几乎所有实用的程序都包含循环,熟练使用 MATLAB 的循环结构的选择结构是编程的基本要求。MATLAB 提供四种循环和选择控制结构,它们是:for 循环,while 循环,if-else-end 结构和 switch-case-end 结构 们经常出现在 M 文件中1. 运算符MATLAB 的运算符可分为三类:算术运算符、关系运算符和逻辑运算符其中算术运算符的优先级最高,其次是关系运算符,再其次是逻辑运算符。算术运算符在前面已经介绍,这里只介绍关系

2、运算符和逻辑运算符1关系运算符关系运算符对于程序的流程控制非常有用MATLAB 共有六个关系运算符,它们分别是 小于; = 小于等于; 大于;= 大于等于; 等于; =不等于关系运算符可以比较同型矩阵,此时将生成一个 0-l 矩阵,当相应元素经关系运算为真时,对应位置上生成 1,否则为 0 关系运算符也可以比较标量和矩阵,此时是标量与矩阵的每个元素分别比较,生成一个 01 矩阵2逻辑运算符MATLAB 共有三个逻辑运算符:与()或(|)非() 。对于数值矩阵,当元素为 0 时,逻辑上为假;当元素为非 0 时。逻辑上为真同关系运算符一样,逻辑运算符两端的运算数可以是同型矩阵,对两矩阵的相应元素分

3、别运算,结果为一个 01 矩阵当逻辑表达式的值为真时。赋值1,否则为 0同样,其中一个矩阵也可以是标量。与()运算: 两个运算数都为真时,结果为真,其他情况下(一真一假或两个都假)结果为假或(1)运算: 两个运算数都为假时,结果为假,其他情况下(一真一假或两个都真)为真非()运算: 只有一个运算数,当该运算数为真时,结果为假,否则,结果为真2. for 循环for 循环允许一组命令以固定的和预定的次数重复。for 循环的一般形式为:for x=表达式 1:表达式 2:表达式 3语句体end其中表达式 1 的值为循环的初值,表达式 2 的值为步长,表达式 3 的值为循环的终值如果省略表达式 2,

4、则默认步长为 1该循环体的执行过程如下:l)将表达式 1 的值赋给 x;2) 对于正的步长,当 x 的值大于表达式 3 的值时,结束循环;对于负的步长,当 x 的值小于表达式 3 的值时结束循环否则,执行 for 和 end 之间的语句体,然后执行下面的第 3)步3)x 加上一个步长后,返回第 2)步继续执行例如,程序:for kl:4X(k )lk;endformat rat 设置输出格式为有理数x将输出:X1 1/2 1/3 1/4 *注意: l) for 语句可以嵌套使用;2)当有一个等效的数组方法来解给定的问题时,应避免用 for 循环例如,上例可被重写为n1:4; x1n; form

5、at rat;x这种方法执行更快,要求较小的输入3. while 循环while 循环一般用于事先不能确定循环次数的情况while 循环的一般形式为:While 表达式语句体end只要表达式的值为 1(真),就执行 while 与 end 之间的语句体,直到表达式的值为 0(假)时终止该循环通常,表达式的值为标量,但对数组值也同样有效,此时,数组的所有元素都为真,才执行 while 与 end 之间的语句体例如,程序:n0;EPS=1;while(1+EPS) 1EPSEPS2;nnl;endn,EPSEPS * 2运行结果:n53EPS2.2204 e-016这个例子给出了计算 MATLAB

6、 的特殊变量 eps 的一种方法,eps 是一个可以加到 1,在计算机的有限精度下,而使结果大于 1 的最小数值这里我们用大写 EPS,以便与 eps 相区别EPS 从 1 开始,不断被 2 除,直到 EPSl 不大于1。因为 MATLAB 用 16 位数来表示数据,因此,当 EPS 接近 10-16 时,它会认为EPS+1 不大于 1,于是 while 循环结束4. if-else-end 结构在很多情况下,语句序列必须有条件地执行在编程语言里,这种逻辑由某种 ifelse-end 结构来完成最简单的形式为:if 表达式语句体end如果表达式的值为真,则执行 if 与 end 之间的语句体,

7、否则,执行 end 的后续命令if 结构的另一种形式if 表达式语句体 1else语句体 2end如果表达式的值为真,则执行语句体 1,然后跳出该选择结构,执行 end的后续语句;如果表达式的值为假,则执行语句体 2,之后,执行 end 的后续语句当有三个或更多的选择时,可采用 if 结构的下列形式if 表达式 1语句体 1elseif 表达式 2语句体 2.elseif 表达式 n语句体 nelse语句体 n+1end如果表达式 j(j=1,2,n)为真,则执行语句体 j,然后执行 end 的后续语句否则,当 if 和 elseif 后的所有表达式的值都为假时,执行语句体nl,然后执行 en

8、d 的后续语句例如,可用以下程序得到符号函数function ySIGN(x)if X0y1;elseif x0y0;elsey=1;end可用 if 和 break 语句来跳出 for 循环和 while 循环例如,EPS=l;For n1:l000EPS=EPS2;if(1EPS)l;EPSEPS*2;breakendendn,EPS其运行结果同前面一样,n53,EPS22204e016.在此例中,当执行 break 语句时,MATLAB 跳到循环外的下一个语句如果一个 break 语句出现在一个嵌套的 for 循环或 while 循环里,那么只跳出break 所在的那个循环,不跳出整个嵌

9、套结构5. switch-case-end 结构switch 语句根据表达式的值来执行相应的语句,一般形式为switch 表达式(标量或字符串)case 值 1,语句体 1case 值 2.1,值 22,语句体 2.otherwise,语句体 nEnd当表达式的值为值 1 时,执行语句体 1,然后执行 end 的后续语句;当表达式的值为值 2.1,值 22,中之一时,执行语句体 2,然后执行 end 的后续语句;若表达式的值不为任何关键字“case”所列的值时,则执行语句体n,接着执行 end 的后续语句注意:只执行一个语句体,然后就执行 end 的后续语句例如,假设 NAME 是一个字符串变量,下列程序将在 NAME 取值为各种不同字符串的情形下,显示相应的信息switch lower(NAME)case zhanghua,lijiang,disp(He comes form China)case peter,disp(He comes form United States)case monika,disp(She cmoes form Germany)otherwise,disp(He or she comes from other countries)end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。