大学精品课件:Ch02M文件与MATLAB程序设计.ppt

上传人(卖家):金钥匙文档 文档编号:517464 上传时间:2020-05-10 格式:PPT 页数:68 大小:4.12MB
下载 相关 举报
大学精品课件:Ch02M文件与MATLAB程序设计.ppt_第1页
第1页 / 共68页
大学精品课件:Ch02M文件与MATLAB程序设计.ppt_第2页
第2页 / 共68页
大学精品课件:Ch02M文件与MATLAB程序设计.ppt_第3页
第3页 / 共68页
大学精品课件:Ch02M文件与MATLAB程序设计.ppt_第4页
第4页 / 共68页
大学精品课件:Ch02M文件与MATLAB程序设计.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.1/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 Ch02 M文件与文件与MATLAB程序设计程序设计 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.2/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 教学目标教学目标 用交互式的方式来编写程序适用于命令行比较简用交互式的方式来编写程序适用于命令行比较简 单,输入比较方便,同时处理的问题步骤较少的单,输入比较方便,同时处理的问题步骤较少的 情况。情况。 当需要处理重复、复杂且容易出错的问题时

2、,可当需要处理重复、复杂且容易出错的问题时,可 以进行控制流的程序设计,这就是以进行控制流的程序设计,这就是M文件的编程文件的编程 工作方式。工作方式。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.3/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 教学重点教学重点 MATLAB 的控制流语言的控制流语言 变量和函数的种类变量和函数的种类 了解程序的调试和优化了解程序的调试和优化 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.4/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 教学过程

3、教学过程 M文本编辑器的基本知识文本编辑器的基本知识 MATLAB 的控制流语言的控制流语言 变量和函数的种类变量和函数的种类 程序设计的辅助函数程序设计的辅助函数 程序的调试和优化程序的调试和优化 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.5/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 提问提问 1. 例举几个例举几个MATLAB中常用的函数,以及简要阐中常用的函数,以及简要阐 述其相应的功能。述其相应的功能。 2. 等差向量的生成方法有哪些?等差向量的生成方法有哪些? 3. 如何输入多项式?如何求多项式的根?如何输入多项式?如何

4、求多项式的根? 4. 如何创建函数式如何创建函数式M文件?文件? 5.请简要介绍请简要介绍MATLAB程序设计中的程序设计中的for循环和循环和 while循环的使用方法及它们的主要区别。循环的使用方法及它们的主要区别。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.6/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 1. M文本编辑器的基本知识文本编辑器的基本知识 我们前面所介绍在我们前面所介绍在MATLAB所做的运算,是适合所做的运算,是适合 于所要计算的算式不太长或是想以交谈式方式做运于所要计算的算式不太长或是想以交谈式方式做运 算,

5、如果要计算的算式很长有数十行或是须要一再算,如果要计算的算式很长有数十行或是须要一再 执行的算式,则那样的方式就行不通了。执行的算式,则那样的方式就行不通了。 MATLAB提供了所谓的提供了所谓的 M-file 的方式,可让使用的方式,可让使用 者自行将指令及算式写成巨集程式然后储存成一个者自行将指令及算式写成巨集程式然后储存成一个 特别的文档,其扩展名是特别的文档,其扩展名是m,譬如,譬如 picture.m,其中,其中 的的picture就是文件名称。就是文件名称。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.7/68 2020/5/10 温州大学本科生课程

6、教学温州大学本科生课程教学 % 新建M-file, area.m % 计算一个球的体积 r = input(Type radius 输入半径:); Area=pi*r2; volume=(4/3)*pi*r3; fprintf(半径 The radius is %12.5fn,r) fprintf(面积 The area of a circle is %12.5fn,Area) fprintf(体积 The volume of a sphere is %12.5fn,volume) 在指令窗口运行指令 area 1. M文本编辑器的基本知识文本编辑器的基本知识 温州大学本科生课程温州大学本科生

7、课程工程中的数值计算工程中的数值计算 No.8/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 1. M文本编辑器的基本知识文本编辑器的基本知识 M文本编辑器文本编辑器 M文件的基本属性文件的基本属性 M文件的组成部分文件的组成部分 脚本式脚本式M文件文件 函数式函数式M文件文件 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.9/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 (1)M文本编辑器文本编辑器 M文件的语法类似于一般高级语言,是一种程序文件的语法类似于一般高级语言,是一种程序 化的编程语言,但是,与传统的

8、高级语言相比,化的编程语言,但是,与传统的高级语言相比, M文件又有自己的特点。文件又有自己的特点。 它只是一个简单的它只是一个简单的ASC型码文本文件,因此,型码文本文件,因此, 它的语法比一般的高级语言要简单,程序也容易它的语法比一般的高级语言要简单,程序也容易 调试,并且有很好的交互性。调试,并且有很好的交互性。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.10/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 M文件的基本属性文件的基本属性* M文件有两种,一种为脚本式文件有两种,一种为脚本式(Script),一种为函,一种为函 数

9、式数式(Function) 。 函数函数M文件必须满足一些标准,另外,它们还应文件必须满足一些标准,另外,它们还应 该满足一些该满足一些MATLAB 的属性。主要有以下几的属性。主要有以下几 点:点: 函数式函数式M文件名和出现在文件的第一行的函数文件名和出现在文件的第一行的函数 名必须相同名必须相同。实际上,。实际上,MATLAB 忽略了第忽略了第 一行的函数名,并且根据存储在硬盘上的文一行的函数名,并且根据存储在硬盘上的文 件名来执行函数。件名来执行函数。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.11/68 2020/5/10 温州大学本科生课程教学温州

10、大学本科生课程教学 M文件的组成部分文件的组成部分* 函数式函数式M文件的组成部分。文件的组成部分。 调出调出M-edit窗口,在里边输入如下内容:窗口,在里边输入如下内容: function f = fact(n) %函数的定义行函数的定义行 % Compute a factorial value. %H1行行 % FACT(N) returns the factorial of N, %帮助文本帮助文本 % usually denoted by N! % Put simply, FACT(N) is PROD(1:N). %注释注释 f = prod(1:n); % 函数体函数体 温州大学

11、本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.12/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 M文件的组成部分及其功能文件的组成部分及其功能* M文件的组成部分及其功能文件的组成部分及其功能 组组 成成 部部 分 分 描描 述 述 函数定义行函数定义行(仅限于仅限于 函数式函数式M文件文件) 定义函数名,以及输入和输出变量的数定义函数名,以及输入和输出变量的数 目和顺序目和顺序 H1 行 行 H1行对程序进行概括性的描述,使用行对程序进行概括性的描述,使用 help和和lookfor命令都可以调出此行命令都可以调出此行 帮助文本帮助文本 这是

12、比这是比H1 行更详细的帮助信息,使用行更详细的帮助信息,使用 help命令时与命令时与H1行一起显示行一起显示 函数体函数体 函数体是函数体是M文件的主要部分,程序的计文件的主要部分,程序的计 算和设计都在此实现算和设计都在此实现 注释注释 解释程序行的意义解释程序行的意义 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.13/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 (2)脚本式)脚本式M文件文件 用户可以将需要重复输入的所有命令按顺序放到用户可以将需要重复输入的所有命令按顺序放到 一个扩展名为一个扩展名为m的文本文件下,每次运行时

13、只要的文本文件下,每次运行时只要 输入该输入该M文件的文件名即可。文件的文件名即可。 用户自己创建的用户自己创建的M文件的文件名要避免与文件的文件名要避免与 MATLAB 的内置函数和工具箱中的函数重名,的内置函数和工具箱中的函数重名, 以免发生内置函数被替换的情况。以免发生内置函数被替换的情况。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.14/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 脚本式脚本式M文件举例文件举例 本脚本式本脚本式M文件绘制一个正弦曲线:文件绘制一个正弦曲线: %此文件用于绘制此文件用于绘制【2pi,2pi】区

14、间的正区间的正 弦曲线图弦曲线图 x=-2*pi:0.05:2*pi; y=sin(x); plot(x,y,c+) legend(正弦曲线图正弦曲线图) 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.15/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 (3)函数式)函数式M文件文件 函数式函数式M文件一般都要自带参数,并且有返回结文件一般都要自带参数,并且有返回结 果果 。 函数式函数式M文件的第一行都是以文件的第一行都是以function开始,说明开始,说明 此文件是一个函数此文件是一个函数。函数式函数式M文件中的变量都不文件中的变量

15、都不 是全局变量是全局变量,仅在函数运行期间有效,函数运行,仅在函数运行期间有效,函数运行 完毕之后,它所定义的变量将从工作区间中清除。完毕之后,它所定义的变量将从工作区间中清除。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.16/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 例题例题 举例说明一个名为cylinder的函数,它输入两个参 数:圆柱的高与底面半径,并且产生返回变量 volume。 function volume=cylinder (height, radius) % function to compute the vol

16、ume of a cylinder % volume=cylinder (height, radius) base=pi*radius2; volume=base*height; function s=jiecheng(n) %此函数用来求非负整数此函数用来求非负整数n的阶乘的阶乘 %参数参数n可以为任意的非负整数可以为任意的非负整数 %编写日期:编写日期: 2007-5-2 if n0.5 disp(i love you) else disp(i donot love you) end ifend语句语句 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.27/68

17、 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 【例题例题】编写一个脚本,利用编写一个脚本,利用 input()函数录入一个由百分数函数录入一个由百分数 表示的等级数,然后根据下表,表示的等级数,然后根据下表, 用用if语句将其转化为一个字母语句将其转化为一个字母 等级:等级: 90%或者更大:或者更大:A 80%90%:B 70%80%:C 60%70%:D 小于小于60%:F 请通过反复输入合法和不合法请通过反复输入合法和不合法 的等级百分数来测试你的程序。的等级百分数来测试你的程序。 grade = input(what grade?); if grade = 90

18、letter = A elseif grade = 80 letter = B elseif grade = 70 letter = C elseif grade = 60 letter = D else letter = F end 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.28/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 (3) switchcaseend语句语句* switch开关语句开关语句 可代替系列可代替系列if-elseif-else-end结构结构 case条件语句,条件语句, 执行语句,执行语句,执行语句,执行语句

19、 case 条件语句条件语句1,条件语句,条件语句2, 条件语句条件语句 3, 执行语句,执行语句,执行语句,执行语句 otherwise, 执行语句,执行语句,执行语句,执行语句 end 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.29/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 (4) trycatchend* try-catch模块提供了一种错误捕获机制。换句话模块提供了一种错误捕获机制。换句话 说,利用说,利用try-catch模块,模块,MATLAB 编译系统发现编译系统发现 的错误将被其捕获,用户可以控制的错误将被其捕获,

20、用户可以控制MATLAB 怎怎 样对发生的错误进行处理。样对发生的错误进行处理。 try 执行语句执行语句1 catch 执行语句执行语句 2 end 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.30/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 (5) for循环语句循环语句 For语句是一种循环语句,可以很方地实现循环操语句是一种循环语句,可以很方地实现循环操 作,从而可以从容地应付大规模的循环语句。作,从而可以从容地应付大规模的循环语句。 for i =表达式,表达式, 执行语句,执行语句,执行语句,执行语句 end For循环允

21、许一组命令以固定的和预定的次数重循环允许一组命令以固定的和预定的次数重 复在复在for和和end语句之间的语句之间的commands按数组中按数组中 的每一列执行一次。的每一列执行一次。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.31/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 【例例】 for n=1:10 x(n)=sin(n*pi/10); end x x = Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 throu

22、gh 10 0.5878 0.3090 0.0000 (5) for循环语句循环语句 编程求出编程求出sin(n/10)的值,其中的值,其中n取取110之间的整数。之间的整数。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.32/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 For循环可按需要嵌套循环可按需要嵌套 n=0:1:10; for i=1:11 for j=1:11 y(i)=sin(n(i); n(j)=n(j)*10; end end y = Columns 1 through 7 0 -0.5064 0.9300 -0.8

23、027 - 0.1425 -0.9765 -0.5118 Columns 8 through 11 0.8586 -0.9957 0.9917 0.9287 n = 1.0e+012 * Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000 可以利用break命令跳出for循环 (5) for循环语句循环语句 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.33/68 2020/5/10 温州大学

24、本科生课程教学温州大学本科生课程教学 【例例】一个简单的for循环示例。 for i=1:10; %i依次取依次取1,2,10,. x(i)=i; %对每个对每个i值,重复执行由该指令构成的循环体值,重复执行由该指令构成的循环体 end; x %要求显示运行后数组要求显示运行后数组x的值。的值。 x = 1 2 3 4 5 6 7 8 9 10 (5) for循环语句循环语句 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.34/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 例例:tang.m a=2;b=2; x=-a:0.2:a;y=-

25、b:0.2:b; for i=1:length(y) for j=1:length(x) if x(j)+y(i)1 z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2-1.5*x(j); elseif x(j)+y(i)1 EPS=EPS/2; num=num+1; end num num = 53 EPS=2*EPS EPS = 2.2204e-016 (6)while循环语句循环语句 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.38/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 【例例】 x = ze

26、ros(1,6); % x是一个的零矩阵是一个的零矩阵 i = 1; while i ”变为“变为“K”,用户可以进,用户可以进 行相应的操作。行相应的操作。 在函数头前加“在函数头前加“%”,这样就将函数式,这样就将函数式M文件变为脚本文件变为脚本 式式M文件,而脚本式文件,而脚本式M文件运行时,其工作区间就是文件运行时,其工作区间就是 MATLAB 的工作区间,这样在出现错误的时候就可以的工作区间,这样在出现错误的时候就可以 查询这个工作区间。查询这个工作区间。 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.59/68 2020/5/10 温州大学本科生课程教

27、学温州大学本科生课程教学 错误的识别和程序调试错误的识别和程序调试 错误识别函数及其功能错误识别函数及其功能 函函 数数 名名 功功 能能 描描 述 述 echo 在函数运行时显示代码在函数运行时显示代码 disp 显示特定的值或信息显示特定的值或信息 Sprintf i=0; for t=0:.01:2000 i=i+1; y(i)=sin(t); end T=cputime-T1 T = 6.0150 T1=cputime; t=0:.01:2000; y=sin(t); T=cputime-T1 T = 0.0160 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算

28、No.64/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 2. 数据的预定义数据的预定义 对可能出现变量维数不断扩大的问题,应当预先对可能出现变量维数不断扩大的问题,应当预先 估计变量可能的最大维数,进行预先定义。估计变量可能的最大维数,进行预先定义。 T1=cputime; x=0; for k=2:30000 x(k)=x(k-1)+5; end T=cputime-T1 T = 15.2970 T1=cputime; x=zeros(1,50000); for k=2:50000 x(k)=x(k-1)+5; end T=cputime-T1 T = 0 温州大

29、学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.65/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 3. 有效地使用内存有效地使用内存 MATLAB本身不具备管理系统资源地能力,在进本身不具备管理系统资源地能力,在进 行较大规模计算时,尽可能关闭那些不需要地窗行较大规模计算时,尽可能关闭那些不需要地窗 口和应用程序,以节约资源。口和应用程序,以节约资源。 Whos Pack Clear Save Load Quit 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.66/68 2020/5/10 温州大学本科生课程教学温

30、州大学本科生课程教学 Clear:从内存中清除所有的变量:从内存中清除所有的变量 CLEAR Clear variables and functions from memory. CLEAR removes all variables from the workspace. CLEAR VARIABLES does the same thing. CLEAR GLOBAL removes all global variables. CLEAR FUNCTIONS removes all compiled M- and MEX-functions. Save:有选择地将变量保存至磁盘:有选择地将

31、变量保存至磁盘 SAVE Save workspace variables to disk. SAVE FILENAME saves all workspace variables to the binary (二进 位的)“MAT-file” named FILENAME.mat. The data may be retrieved with LOAD. If FILENAME has no extension, .mat is assumed. 3. 有效地使用内存有效地使用内存 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.67/68 2020/5/10 温

32、州大学本科生课程教学温州大学本科生课程教学 Load:从磁盘中调出由:从磁盘中调出由save命令保存地变量命令保存地变量 LOAD Load workspace variables from disk. LOAD FILENAME retrieves all variables from a file given a full pathname or a MATLABPATH relative partial pathname (see PARTIALPATH). Quit:退出:退出Matlab环境,释放所有内存环境,释放所有内存 3. 有效地使用内存有效地使用内存 温州大学本科生课程温州大学本科生课程工程中的数值计算工程中的数值计算 No.68/68 2020/5/10 温州大学本科生课程教学温州大学本科生课程教学 END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(大学精品课件:Ch02M文件与MATLAB程序设计.ppt)为本站会员(金钥匙文档)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|