版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab 基本语句1. 循环语句forfor i=s1:s3: s2循环语句组end解释:首先给i赋值si;然后,判断i是否介于si与s2之间;如果是,则执行循环语句组,i=i+s3(否则,退出循环.);执行完毕后,继续下一次循环。例:求1到100的和,可以编程如下:sum=0for i=1:1:100sum=sum+iend这个程序也可以用while语句编程。注:for循环可以通过break语句结束整个for循环.2. 循环语句while例:sum=0;i=1;while(i<=100)sum=sum+i;i=i+1;end3.if语句if(条件)语句endif(条件)语句else
2、语句endif(条件)语句elseif语句end4.关系表达式:=,>,<,>=,<=,=(精确等丁)5. 逻辑表达式:|(或),&(且)6. n,m=size(A)(A 为矩阵)这样可以得到矩阵A的行和列数n=length(A),可以得到向量A的分量个数;如果是矩阵,则得到矩阵 A的行与 列数这两个数字中的最大值。7. !后面接Dos命令可以调用运行一个dos程序。8. 常见函数:poly():为求矩阵的特征多项式的函数,得到的为特征多项式的各个系数。如 a=1,0,0;0,2,0;0,0,3,贝U poly(a) = 1 -6 11 -6 。相当于 poly
3、(a)=1 入A3+(-6)入 A2+11 入+(-6)。compan():可以求矩阵的伴随矩阵.sin()等三角函数。MATLAB在数学建模中的应用(3)一、程序设计概述MATLAB所提供的程序设计语言是一种被称为第四代编程语言的高级程序 设计语言,其程序简洁,可读性很强,容易调试。同时,MATLAB的编程效率比C/C+语言'要局得多。MATLAB编程环境有很多。常用的有:1. 命令窗口2. word 窗口3. M-文件编辑器,这是最好的编程环境。M-文件的扩展名为“.m:' M-文件的格式分为两种: 舄M-脚本文件,也可称为 命令文件”。 M-函数文件。这是matlab程序
4、设计的主流。舄保存后的文件可以随时调用。二、MATLAB程序结构按照现代程序设计的观点,任何算法功能都可以通过三种基本程序结构来实 现,这三种结构是:顺序结构、选择结构和循环结构。其中顺序结构是最基本的 结构,它依照语句的自然顺序逐条地执行程序的各条语句。如果要根据输入数据的实际情况进行逻辑判断,对不同的结果进行不同的处理,可以使用选择结构。 如果需要反复执行某些程序段落,可以使用循环结构。1顺序结构顺序结构是由两个程序模块申接构成。一个程序模块是完成一项独立功能的逻辑 单元,它可以是一段程序、一个函数,或者是一条语句。看图可知,在顺序结构中,这两个程序模块是顺序执行的,即先执行<程序
5、模块1>,然后执行 < 程序模块2>。实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。2选择结构在MATLAB中,选择结构可由两种语句来实现。(1) if语句if语句的最简单用法为:if表达式;程序模块;endif语句的另一种用法为:if表达式程序模块1else程序模块2end例1使用if语句判断学生的成绩是否及格。程序:clearn=input( 输入 n=) <m=60;if n < m,r='不及格'elser='及格'end练习一:将例1写入M-文件编辑器,然后在command window 调用这个程当针对多个条件
6、进行选择时,可以采用下面的格式:if表达式1程序模块1elseif表达式2程序模块2elseif表达式n程序模块nelse程序模块n+1end例2将白分制的学生成绩转换为五分制输出。程序:clearn=inp ut(,输入 n=,)if n>=90chji='优秀'elseif n>=80chji='良好elseif n>=70chji='中等'elseif n>=60chji='及格'elsechji='不及格'end练习二:将例2写入M-文件编辑器,然后在command window 调用这个程
7、(2) switch 语句switch语句可以替代多分支的if语句,而且switch语句简洁明了,可读性更好。其格式为:switch 表达式case数值1程序模块1case数值2程序模块2otherwise程序模块nend其中的otherwise模块可以省略。switch语句的执行过程是:首先计算表达式的值,然后将其结果与每一个case后面的数值依次进行比较,如果相等,则执行该case的程序模块;如果都不相等,贝U执行otherwise模块中的语句。如图3所示。例3用switch caseFF关结构将白分制的学生成绩转换为五分制的成绩输 出。程序:clearx=58switch fix(x/1
8、0)case 10,9y='优秀'case 8y='良好'case 7y='中等case 6y='及格'otherwisey='不及格'endMatlab取整函数有:fix, floor , ceil, round.具体应用方法如下: fix 朝零方向取整,如 fix(-1.3)=-1; fix(1.3)=1;floor,顾名思义,就是地板,所以是取比它小的整数,即朝负无穷方向取整,如 floor(-1.3)=-2; floor(1.3)=1;floor(-1.8)=-2 , floor(1.8)=1ceil与floor相
9、反,它的意思是大花板,也就是取比它大的 最小整数,即朝正无穷方向取整,如ceil(-1.3)=-1;ceil(1.3)=2;ceil(-1.8)=-1, ceil(1.8)=2round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2 o练习三:将例3写入M-文件编辑器,然后在command window 调用这个程3循环结构循环结构的流程图如图4所示它可以多次重复执行某一组语句。循环是计算 机解决问题的主要手段。2+2 2+520在MATLAB中,循环结构可以由两种语句结构实现。(1) forend循环
10、结构。其格式为:for i=V,循环体结构,end其中V为一个行向量,循环变量i每次从V中取一个数值,执行一次循环体的内容,如此下去,直到完成 V中的所有分量,就自动结束循环体的执行。例4 计算s=1程序:a=1 2 5 ; s=0;for k=a,s=s+kA2;end,s,程序命令后面输入与不输入“的区别是,当输入半角的分号时,命令中的变量会自动列表储存在 workspace中,变量的 值不会在 window command 中显示出来;当不输入半角的分 号时,变量不仅也会自动储存在workspace中,还会在windowcommand窗口中显示出变量的值。该例题只是为了说明for语句的格
11、式,事实上,用下面的语句求和更为简单。命令:p=sum(a,2)练习四:建立MATLAB与word的连接,在新建的m-book中写入上面的程 序,并用notebook菜单运行之。循环结构里面还可以包含循环结构,形成多重循环 例5 设计一个九九乘法表。程序:clearfor i=1:9for j=1:9a(i , j)=i*j;大括号用于单元阵列的赋值中括号 用于形成一个向量或矩阵 小括号通常用于一般的算术表达式, 指示优先运算,还用于表示函数变量、 向量下标和矩阵下标等到endenda ,练习五:直接在命令窗编写上面的程序。 试运行下面的程序,并加以分析:程序:disp('九九乘法表)
12、,for=1:9,for j=1:i,pi(j)=j*i;end,disp(pi),end(2) while end 循环结构。其格式为:while (表达式)循环结构体end例6求MATLAB的相对精度解:解题的思路是,让y值不断减小,直到MATLAB分不出1+y与1的差 别为止。程序:y=1; while 1+y>1; y1=y; y=y/2; end,y1说明: for循环与while循环的区别是,for语句的循环次数是确定的,而 while 语句的循环次数是不确定的。 一定要注意在循环结构体内设置修改条件表达式的语句”,以免进入 死循环”。 一旦出现死循环,在命令窗用 ctrl+
13、c可使程序中止。 注意程序的可读性。练习六:在M-文件编辑器内编写上面的脚本文件,并利用菜单或快捷按钮 运行之。三、M-文件M文件是包含MATLAB代码的文件。M文件按其内容和功能可分为脚本 M 文件和函数M文件这两大类。1、脚本M文件脚本M文件是许多MATLAB代码按顺序组成的命令集合,不接受参数的输 入和输出,与MATLAB工作区共享变量空间。脚本文件一般用来实现一个相对 独立的功能,比如对某个数据集进行某种分析、绘图,求解方程等等。前面的几个例题都是脚本文件的类型。2、函数M文件MATLAB的M-函数是由function语句引导的,其基本格式如下: function 输出形参歹U表=函数
14、名(输入形参歹U表) 注释说明语句段,由引导;函数体语句函数文件需要在M-文件编辑器(editor)中编写。写完以后,按照当前的搜索 路径保存。以后就可以随时调用这个函数了。与脚本M文件不同的是,调用函数 M文件时需要输入自变量的实际值。 随便打开一个M-文件看一看:open Isqlin编程实例例7.定义一个函数f(x)=sin(x) 2,其中x以度”为单位。然后再调用该函解:在M-文件编辑器内写入下面的文件:function y=sinsd(x) % 自变量x以度”为单位。a=x/180*pi; %a以弧度表示y=sin(a).A2;将上面的文件保存之后即可随时调用。命令:t=sinsd(
15、45)t =0.5000命令:help sinsd命令:t=sinsd(45,60)t =0.5000 0.7500表明该函数对元素群运算有效。上面的语句相当丁命令:x=45,60;t=sinsd(x)t =0.5000 0.7500命令:x=45,60;30,90;f=sinsd(x)f =0.5000 0.75000.2500 1.0000将源文件中最后一行的“去掉,再运行以上两条命令,我们会发现什么?(不 能以矩阵的方式求解)例8.在MATLAB中,一个函数可以调用其它函数,也可以调用自身,即 递 归调用。下面利用递归算法编写一个函数,用来计算 Fibonacci数歹0的第k项。Fibo
16、nacci 数歹U:1, 1, 2, 3, 5, 8, 13, 21 , M-函数文件:function a=my_fibo(k)if k=1|k=2,a=1;else,a=my_fibo(k-1)+my_fibo(k-2);end将这个文件写A M-文件编辑器并以名称“my_fibo.m保存,以后就可以调用 这个函数。tic和toc用来记录 matlab命令执行的时间。tic用来保存当前时间,而后使用toc来记录程序完成时间。两者往往结合使用,用法如下:ticoperationstoc显示时间单位:秒递归算法无疑是解决某一类问题的有效方法,但不宜滥用,因为它的运算速 度往往很慢。命令:tic
17、, n= my_fibo(26) ,toc n =121393elapsed_time =34.4290 (与计算机的运行有关)下面我们尝试用一般的循环语句来求解这个问题。程序:tic,n=1,1;for k=3:100,n(k)=n(k-1)+n(k-2);end,toc,elapsed_time =0.0100命令:n(1:26)ans =Columns 1 through 81123581321Columns 9 through 16345589144233377610987Columns 17 through 241597 2584 4181 6765 1094617711 28657
18、 46368Columns 25 through 2675025 121393例9.可变输入变量个数的函数MATLAB提供的conv()函数可用来求 两个多项式的乘积。对丁多个多项式 的连乘,贝U不能直接使用此函数,需要用该函数嵌套使用,用起来很不方便。下 面编写一个MATLAB函数,使它能直接处理任意多个多项式的乘积问题 。M-函数文件:1. Matlab中使用varargin来实现参数可变的函数2. 只要将最后一个参数设置为varargin ,就可以实现3. 在这个函数里,varargin就是一个cell数组,它包含了用户输入的参数function a=convs(varargin)a=1
19、;for i=1:length(varargin) a=conv(a,varargini);end形参varargin是一个特殊的字符申,它把输入变量列表转换成一个元胞数 组,每一个输入变量都是这个元胞数组的一个元素。下面调用这个函数,求解d=(x 4+2x 3+4x 2+5)(x+2)(x 2+2x+3)命令:p=1,2,4,0,5;q=1,2;f=1,2,3;d=convs(p,q,f)d =16 19 36 45 44 35 30命令:convs(p,q,f,1,1,1,3,1,1)ans =1 11 56 176 376 578 678 648 527 315 90例 10 关于 break、continue、return 的用法。当程序运行过程中出现return命令时,程序停止运行。bre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度中国储备粮管理集团有限公司辽宁分公司招聘69人笔试历年参考题库附带答案详解
- 2025年山西太行云顶文化旅游发展有限公司公开招聘工作人员笔试历年参考题库附带答案详解
- 2026年湖北省初中学业水平考试化学试卷真题含答案详解
- 地基基础设计管理手册
- 大宗工业固废综合利用项目技术方案
- 大跨度钢结构吊装施工技术方案
- 工厂固定资产管控方案
- 财务预算与控制培训课程
- 钢结构厂房施工管理方案
- 2026安全生产月排查整治风险隐患专题培训课件
- 以目标为导向的大学英语模块化教学
- 机械通气护理课件
- 2026春每日一练小纸条数学人教版小升初
- 雨课堂学堂在线学堂云《航空电机与电器(中国人民解放军海军航空)》单元测试考核答案
- 中药材有机种植生产技术手册
- 加油站服务操作流程手册
- 2025-2026年人教版四年级下册语文期末考试卷及答案
- 心脏瓣膜介入治疗术后抗栓管理策略
- 滴滴出租车安全协议书
- 旅游服务中心投诉处理规范流程
- 销售半年度工作总结和计划
评论
0/150
提交评论