《数学建模与MATLAB课件.ppt》由会员分享,可在线阅读,更多相关《数学建模与MATLAB课件.ppt(24页珍藏版)》请在三一办公上搜索。
1、数学建模与MATLAB,第三讲:MATLAB程序设计(1),2023/1/3,M文件,3.1,数学建模与MATLAB,2,M文本编辑器的基本知识,M文件的语法类似于一般高级语言,是一种程序化的编程语言。但是,与传统的高级语言相比,M文件又有自己的特点。它只是一个简单的ASCII型码文本文件,因此,它的语法比一般的高级语言要简单,程序也容易调试,并且有很好的交互性。文件名必须以英文字符开头,且不包含运算符,不与变量名函数名重复。M文件分为脚本文件和函数文件。,数学建模与MATLAB,3,M文件的建立与运行,数学建模与MATLAB,4,M文件的建立与运行,数学建模与MATLAB,5,脚本M文件,脚
2、本文件是命令的集合,是由一系列MATLAB命令、内置函数及M文件等组成的文件。它是M文件中最简单的一种,不需要输入、输出参数,用命令语句可以控制MATLAB命令工作空间的所有数据。在运行过程中,产生的所有变量均是命令工作空间变量,这些变量一旦生成,就一直保持在内存空间中,除非用户执行clear命令将它们清除。运行一个脚本文件等价于从命令窗口中顺序运行文件里的语句。由于脚本文件只是一串命令的集合,因此,只需像在命令窗口中输入语句那样,依次将语句编辑在脚本文件,然后在MATLAB命令窗口输入该命令文件的名字就会顺序执行命令文件中的命令。,数学建模与MATLAB,6,函数M文件,函数M文件是第一个可
3、执行语句以function开始的M文件,每一个函数文件都定义一个函数,它可以接受参数、也可以返回参数。格式 function 输出变量组=函数名(输入变量组)注释说明部分 函数体 end,数学建模与MATLAB,7,程序设计,3.2,数学建模与MATLAB,8,关系运算符,数学建模与MATLAB,9,逻辑运算符,逻辑真:1 逻辑假:0,数学建模与MATLAB,10,运算符优先级,当将多个运算符和变量写成一个MATLAB表达式时,运算符的优先次序必须明确。,数学建模与MATLAB,11,例题,A=1 2 3 4 5 6 7 8 9B=9 8 7 6 5 4 3 2 1L=L1=A3&B3|B6,
4、数学建模与MATLAB,12,程序设计三种结构,MATLAB语言提供三种结构化语句来控制程序的执行流程:顺序结构:一种按书写顺序执行的结构。选择结构:根据运行时的情况自动选择要执行的语句。循环结构:根据情况自动重复执行有关语句。,数学建模与MATLAB,13,顺序结构,顺序结构即按照语句书写顺序执行的程序结构。,数学建模与MATLAB,14,顺序结构程序举例,使用脚本式M文件绘制一个正弦曲线:,数学建模与MATLAB,15,课堂练习,现有一份学生成绩:45 69 78 96 32 95 88 79 85 74创建M文件,利用顺序结构,编程计算:(1)平均分(2)及格人数(3)小于40分和大于等
5、于90分的人数,数学建模与MATLAB,16,使用求和函数sum(),答案,数学建模与MATLAB,17,clear;clc;A=45 69 78 96 32 95 88 79 85 74;a=sum(A)/sum(A0);b=sum(A60);c=sum(A=90);fprintf(平均分:%4.2f分n及格人数:%d人n高分低分人数:%d人n,a,b,c);,选择结构,选择结构又称为分支结构,是指有条件地选择要执行的程序段。,数学建模与MATLAB,18,双分支选择结构,多分支选择结构,if-else-end语句,1、单分支 if-end 结构格式 if 表达式 执行代码块 end这是最简
6、单的判断语句,只有一个判断语句,其中的表达式为逻辑表达式,当表达式为真时,执行相应的语句,否则,直接跳到下一段语句。,数学建模与MATLAB,19,if-else-end语句,2、双分支 ifelseend 结构当程序有两个选择时,可以选择 ifelseend 结构,此时程序结构为:if 表达式 执行代码块1 else 执行代码块2 end当判断表达式为真时,执行代码块1,否则执行代码块2。,数学建模与MATLAB,20,例题1,输入两个整数,输出其中较大的数。,数学建模与MATLAB,21,开始,输入x、y,xy,max=x,输出max,结束,max=y,真,假,例题2,从键盘输入一个年份,
7、判断是否是闰年。公历闰年计算方法(按一回归年365天5小时48分45.5秒)1、普通年能整除4且不能整除100的为闰年。(如2004年就是闰年,1901年不是闰年)2、世纪年能整除400的是闰年。(如2000年是闰年,1900年不是闰年),数学建模与MATLAB,22,例题2,数学建模与MATLAB,23,从键盘输入一个年份,判断是否是闰年。disp(请输入一个年份:);x=input(year=);if mod(x,400)=0|(mod(x,4)=0 end,例题2,从键盘输入一个年份,判断是否是闰年。公历闰年计算方法(按一回归年365天5小时48分45.5秒)1、普通年能整除4且不能整除100的为闰年。(如2004年就是闰年,1901年不是闰年)2、世纪年能整除400的是闰年。(如2000年是闰年,1900年不是闰年)3、对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年(即出现限制条件,仅被3200整除的年份不是闰年)。如172800年是闰年,86400年不是闰年(因为虽然能被3200整除,但不能被172800整除)。,数学建模与MATLAB,24,