1、Mathematical Modeling and MATLAB数学建模与MATLAB主讲人:孙越数学建模与MATLAB第三讲:MATLAB程序设计(1)2022-11-30M文件3.1数学建模与MATLAB2M文本编辑器的基本知识 M文件的语法类似于一般高级语言,是一种程序化的编程语言。但是,与传统的高级语言相比,M文件又有自己的特点。它只是一个简单的ASCII型码文本文件,因此,它的语法比一般的高级语言要简单,程序也容易调试,并且有很好的交互性。文件名必须以英文字符开头,且不包含运算符,不与变量名函数名重复。M文件分为脚本文件和函数文件。数学建模与MATLAB3M文件的建立与运行数学建模与
2、MATLAB4M文件的建立与运行数学建模与MATLAB5脚本M文件 脚本文件是命令的集合,是由一系列MATLAB命令、内置函数及M文件等组成的文件。它是M文件中最简单的一种,不需要输入、输出参数,用命令语句可以控制MATLAB命令工作空间的所有数据。在运行过程中,产生的所有变量均是命令工作空间变量,这些变量一旦生成,就一直保持在内存空间中,除非用户执行clear命令将它们清除。运行一个脚本文件等价于从命令窗口中顺序运行文件里的语句。由于脚本文件只是一串命令的集合,因此,只需像在命令窗口中输入语句那样,依次将语句编辑在脚本文件,然后在MATLAB命令窗口输入该命令文件的名字就会顺序执行命令文件中
3、的命令。数学建模与MATLAB6函数M文件 函数M文件是第一个可执行语句以function开始的M文件,每一个函数文件都定义一个函数,它可以接受参数、也可以返回参数。格式 function 输出变量组=函数名(输入变量组)注释说明部分 函数体 end数学建模与MATLAB7程序设计3.2数学建模与MATLAB8关系运算符数学建模与MATLAB9运算符说明运算符说明小于大于=大于或等于=等于=不等于逻辑运算符 逻辑真:1 逻辑假:0数学建模与MATLAB10与运算:&或运算:|非运算:1&1=11&0=00&0=01|1=11|0=10|0=01=00=1运算符优先级 当将多个运算符和变量写成一
4、个MATLAB表达式时,运算符的优先次序必须明确。数学建模与MATLAB11优先级运算符最高圆括号()转置(.),共轭转置(),乘方(.),矩阵乘方()逻辑非()乘法(.*),矩阵乘法(*),右除(./),左除(.),矩阵右除(/),矩阵左除()加法(+),减法(-)冒号运算符(:)小于(),小于等于(),大于等于(=),等于(=),不等于(=)逻辑与(&)最低逻辑或(|)例题A=1 2 3 4 5 6 7 8 9B=9 8 7 6 5 4 3 2 1L=L1=A3&B3|B0);b=sum(A60);c=sum(A=90);fprintf(平均分:%4.2f分n及格人数:%d人n高分低分人数
5、:%d人n,a,b,c);选择结构 选择结构又称为分支结构,是指有条件地选择要执行的程序段。数学建模与MATLAB18条件AB真(非0)假(0)KA1A2AiBK=k1K=k2K=kiKk1knif-else-end语句 1、单分支 if-end 结构 格式 if 表达式 执行代码块 end 这是最简单的判断语句,只有一个判断语句,其中的表达式为逻辑表达式,当表达式为真时,执行相应的语句,否则,直接跳到下一段语句。数学建模与MATLAB19if-else-end语句 2、双分支 ifelseend 结构 当程序有两个选择时,可以选择 ifelseend 结构,此时程序结构为:if 表达式 执行
6、代码块1 else 执行代码块2 end 当判断表达式为真时,执行代码块1,否则执行代码块2。数学建模与MATLAB20例题1 输入两个整数,输出其中较大的数。数学建模与MATLAB21开始输入x、yxymax=x输出max结束max=y真假例题2 从键盘输入一个年份,判断是否是闰年。公历闰年计算方法(按一回归年365天5小时48分45.5秒)1、普通年能整除4且不能整除100的为闰年。(如2004年就是闰年,1901年不是闰年)2、世纪年能整除400的是闰年。(如2000年是闰年,1900年不是闰年)数学建模与MATLAB22例题2数学建模与MATLAB23 从键盘输入一个年份,判断是否是闰
7、年。disp(请输入一个年份:);x=input(year=);if mod(x,400)=0|(mod(x,4)=0&mod(x,100)=0)fprintf(%d是闰年!n,x);elsefprintf(%d不是闰年!n,x);end例题2 从键盘输入一个年份,判断是否是闰年。公历闰年计算方法(按一回归年365天5小时48分45.5秒)1、普通年能整除4且不能整除100的为闰年。(如2004年就是闰年,1901年不是闰年)2、世纪年能整除400的是闰年。(如2000年是闰年,1900年不是闰年)3、对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年(即出现限制条件,仅被3200整除的年份不是闰年)。如172800年是闰年,86400年不是闰年(因为虽然能被3200整除,但不能被172800整除)。数学建模与MATLAB24