matlab编程初步PPT学习教案_第1页
matlab编程初步PPT学习教案_第2页
matlab编程初步PPT学习教案_第3页
matlab编程初步PPT学习教案_第4页
matlab编程初步PPT学习教案_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1 matlab编程初步编程初步 2021年7月25日2 u Matlab 作为一种广泛应用于科学计算的工具软件,不仅 具有强大的数值计算、符号计算、矩阵运算能力和丰富的 绘图功能,同时也具有和 C、FORTRAN 等高级语言一样 进行程序设计。 u 在 Matlab 程序设计中,要充分利用 Matlab 数据结构 的特点,提高编程效率。 u 利用 Matlab 的程序控制功能,可以将有关 Matlab 命令编成程序存储在一个文件中(M 文件),然后在命令窗口中运行该文件,Matlab 就会自动依次执行文件中的命令,直到全部命令执行完毕。 第1页/共43页 2021年7月25日3 q 用

2、 Matlab 语言编写的程序称为 M 文件。 q M 文件是由若干 Matlab 命令组合在一起构成的,它可以 完成某些操作,也可以实现某种算法。事实上,Matlab 提供 的内部函数以及各种工具箱,都是利用 Matlab 语言开发的 M 文件。用户也可以结合自己的工作需要,开发自己的程序 或工具箱。 q M 文件根据调用方式的不同可以分为两类: u Script:脚本文件/命令文件 u Function:函数文件 q M 文件以 .m 为扩展名。 第2页/共43页 第3页/共43页 第4页/共43页 第5页/共43页 2021年7月25日7 q M 文件是一个文本文件,可以用任何文本编辑器

3、来建 立和编辑,通常使用 Matlab 自带的 M 文件编辑器。 q 新建一个 M 文件 u 菜单操作 ( File New M-File ) u 命令操作 ( edit M 文件名 ) u 命令按钮 ( 快捷键 ) q 打开已有的 M 文件 u 菜单操作 ( File Open ) u 命令操作 ( edit M 文件名 ) u 命令按钮 ( 快捷键 ) u 双击 M 文件 第6页/共43页 第7页/共43页 2021年7月25日9 u 在命令窗口中输入 f2cs,即可执行该 M 文件。 5 (32) 9 cf 例:编写一个脚本文件将华氏温度转化为摄氏温度 clear; % 清除当前工作空间

4、中的变量清除当前工作空间中的变量 f=input(Please input Fahrenheit temperature:); c=5*(f-32)/9; fprintf(The centigrade temperature is %gn,c); u 新建一个 M 文件 f2cs.m,内容如下: 脚本文件运行后,文件中所产生的所有变量都驻留在所有变量都驻留在 Matlab 当前工作空间当前工作空间,可以用 whos 查看。 第8页/共43页 2021年7月25日10 小于大于=大于等于 =等于=不等于 l 比较大小,如果结论是 真真 则返回 1 ,否则返回 0 l 注意 = 与 = 的区别 l

5、 关系操作符能用来比较两个同样大小的数组,或用 来比较一个数组和一个标量,在后一种情况,标量和 数组中的每一个元素相比较,比较结果与数组大小一 样。 q 关系关系运算符运算符 第9页/共43页 2021年7月25日11 例:例: 2+2=4 ans=1 23 ans=0 A=1 3 5; 2 0 6; A=1 3 5 B=3 1 0 ans=0 1 1 B=3 1 0; 2 4 6; 2 0 6 2 4 6 1 0 1 A=B x=5 0; 4 2; x=5 0 ans=0 1 xany(A) any按列运算 A=0 2 ans=1 1 3 4 all(A) 5 6 ans=0 1 all也按

6、列运算 第13页/共43页 2021年7月25日15 q 程序控制结构有三种:顺序结构、选择结构和循 环结构。任何复杂的程序都由这三种基本结构组成。 l 按排列顺序依次执行各条语句,直到程序的最后。 l 这是最简单的一种程序结构,一般涉及数据的输入输出、数据的计算或处理等。 第14页/共43页 2021年7月25日16 例:例:A=input(Please input A: ) u 数据的输入:input A=input(提示信息提示信息) l 其中 提示信息 为字符串, l 该命令要求用户输入 A 的值 (可以是数或字符串) A=input(提示信息提示信息, s) 注:注:此时输入的字符串

7、不要加单引号! l 如果是输入字符串,也可以使用下面的方法 name=input(Whats your name? , s) 例:例: 第15页/共43页 2021年7月25日17 disp(X) 输出变量 X 的值的值,可以是数值矩阵或字符串 B=1 2 3; 4 5 6; 7 8 9; disp(B) u 数据的输出:disp A=Hello,Tom !; disp(A) 例:例: 第16页/共43页 2021年7月25日18 fprintf(fid,format,variables) 按指定的格式将变量的值输出到指定的文件 u 数据的输出:fprintf l fid 为文件句柄,若缺省,

8、则将变量的值输出到屏幕上 l format 用来指定数据输出时采用的格式,常见的有 %e ( 采用科学计算形式采用科学计算形式 ) %f ( 采用浮点数形式采用浮点数形式 ) %g ( 由系统自动选取上述两种格式之一由系统自动选取上述两种格式之一) %s ( 输出字符串输出字符串) l format 中还可以使用一些特殊格式,如: n ( 换行换行 ) t ( 制表符制表符 ) b ( 退格退格 ) ( 反斜杆反斜杆 ) % ( 百分号百分号 ) 第17页/共43页 2021年7月25日19 a=Hello; b=2.4; c=100*pi; fprintf(a=%s,b=%f,c=%en,a

9、,b,c) a=Hello ,b=2.400000, c=3.141593e+002 例:例: l format 中的输出格式要与输出变量一一对应 l 可以没有输出变量 fprintf(Today is the 77 anniversary of the Mukden Incidentn) 例:例: 第18页/共43页 2021年7月25日20 u 程序的暂停:pause pause 或或 pause(n) 若想强行终止程序的运行,可以使用 Ctrl+c 其中 n 是延迟时间,以秒为单位; 若缺省,则将暂停程序,直到用户按任意键后继续 l pause off 屏蔽程序中所有屏蔽程序中所有 pa

10、use 的作用的作用 l pause on 打开打开 pause 的作用的作用 第19页/共43页 2021年7月25日21 选择结构选择结构 是根据给定的条件成立或不成立,分别执 行不同的语句。Matlab 用于实现选择结构的语句有 if 语句和 switch 语句。 第20页/共43页 2021年7月25日22 l 单分支结构 if expression (条件)(条件) statements (语句组)(语句组) end if expression (条件)(条件) statements1(语句组(语句组1) else statements2(语句组(语句组2) end l 双分支结构

11、第21页/共43页 2021年7月25日23 if expression1 (条件1) statements1(语句组1) elseif expression2 (条件2) statements2(语句组2) . . elseif expressionm (条件m) statementsm(语句组m) else statements(语句组) end l 多分支结构 第22页/共43页 2021年7月25日24 u 数论中的一个有趣问题:任取一个正整数,如果数论中的一个有趣问题:任取一个正整数,如果 是偶数,用是偶数,用 2 除,如果是奇数,用除,如果是奇数,用 3 乘再加乘再加 1, 反复这

12、个过程,直到所得到的数为反复这个过程,直到所得到的数为 1。 问:是否存在使该过程永不中止的整数问:是否存在使该过程永不中止的整数? (exp01.m) 第23页/共43页 2021年7月25日25 while 1 n=input(Please enter n(nonpositive quit):); m=n; if n1 if rem(n,2)=0 n=n/2; else n=3*n+1; end fprintf(n n=%d,n); end fprintf(n %d is not we need! continue . n,m); end 第24页/共43页 2021年7月25日26 l

13、根据表达式的不同取值,分别执行不同的语句。 switch expression (表达式)(表达式) case value1 (表达式(表达式1) statement1(语句组(语句组1) case value2 (表达式(表达式2) statement2(语句组(语句组2) . . case valuem (表达式(表达式m) statementm(语句组(语句组m) otherwise statement (语句组)(语句组) end 第25页/共43页 2021年7月25日27 l Matlab 首先计算 expression 的值,然后将它依次 与各个 case 指令后的检测值进行比较

14、,当比较结果为 真时,就执行相应的语句组,然后跳出 switch 结构。 l switch 后面的表达式 expression 的值可以是一个 标量或字符串。 l otherwise 指令可以不出现。 l 如果所有的比较结果都为假,则执行 otherwise 后 面的语句组,然后跳出 switch 结构。 第26页/共43页 2021年7月25日28 循环结构循环结构 是按照给定的条件,重复执行指定的语句。 Matlab 用于实现循环结构的语句有 for 语句语句和 while 语句语句 第27页/共43页 2021年7月25日29 for variable=expression statem

15、ent(循环体) end 循环变量循环变量 l 表达式 expression 可以是行向量,也可以是矩阵 clear; y=0; n=100; for k=1:n y=y+1/(2*k-1); end 例:例: 已知已知 ,当 n=100 时,求 y 的值 12 1 5 1 3 1 1 n y 第28页/共43页 2021年7月25日30 l 循环语句可以嵌套使用 while expression (条件) statement(循环体) end l 不能在 for 循环体内改变循环变量的值 l 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for 循环的使用 l 如果预先就知道循

16、环的次数,则可以采用 for 循环;否则,如果预先无法确定循环的次数,则可以使用 while 循环。 第29页/共43页 2021年7月25日31 l 这个例子给出了计算 eps 的一种方法。 l 这里我们用大写 EPS,因此系统中 eps 的值不会被覆盖。当 EPS=eps 时,条件仍成立;而当 EPS=eps/2 时,条件为假,退出循环,所以最后应有 EPS=eps/2。num 用来记录循环次数。 u 计算 Matlab 中 eps 值 (exp02.m) num=0; EPS=1; while (1+EPS)1 EPS=EPS/2; num=num+1; end eps为浮点运算的相对精

17、度 第30页/共43页 2021年7月25日32 u break 和 continue l break 语句用于终止循环的执行,即跳出最内层循环 l continue 语句用于结束本次循环,进行下一次循环 l break 和 continue 一般与 if 语句配合使用 u return l return 语句用于退出正在运行的脚本或函数,通常用在函数文件中。 第31页/共43页 2021年7月25日33 首先由计算机随机产生一个首先由计算机随机产生一个 1,100 之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示之间的一个整数,

18、然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示 “High” ,小于则显示,小于则显示 “ Low ” ,等于则显示,等于则显示 “You win!”,同时退出游戏。用户最多有,同时退出游戏。用户最多有 7 次机会。次机会。(exp03.m) u 猜数游戏 第32页/共43页 2021年7月25日34 % 猜数游戏猜数游戏 clear; x=round(100*rand); % 由计算机随机产生一个由计算机随机产生一个0,100的整数的整数 n=7; % 有有7次机会次机会 test=1; disp(欢迎参加猜数游戏!你共有欢迎参加猜数游戏!你

19、共有,num2str(n),次机会次机会); disp(请输入一个请输入一个0到到100之间的一个整数之间的一个整数); for k=1:n guess=input(Enter your guess: ); if guess x disp(high); else disp(You win!); test=0; break; end n=n-1; disp(你还有你还有,num2str(n),次机会!次机会!); end if test=1 disp(You lost!) end 程序示例程序示例 第33页/共43页 2021年7月25日35 function 输出形参列表输出形参列表=函数名函

20、数名(输入形参列表输入形参列表) % 注释说明部分注释说明部分(可选可选) 函数体语句函数体语句(必须必须) u 第一行为第一行为引导行引导行,表示该,表示该 M文件是函数文件文件是函数文件 u 函数名的命名规则与变量名相同函数名的命名规则与变量名相同 ( 必须以字母开头必须以字母开头 ) u 当输出形参多于一个时,用当输出形参多于一个时,用方括号方括号括起来括起来 u 函数必须是一个函数必须是一个单独的单独的 M文件文件 u 函数函数文件名文件名必须与必须与函数名函数名一致一致 u 以以百分号百分号开始的语句为开始的语句为注释语句注释语句 q 函数文件由 function 语句引导 第34页

21、/共43页 2021年7月25日36 function y = myfliplr(x) % returns X with row preserved and columns % flipped in the left/right direction % % X = 1 2 3 becomes 3 2 1 % 4 5 6 6 5 4 % num_col=size(x,2); % 取取 x 的列数的列数 y = x(:,num_col:-1:1); 先输入矩阵x,而后写上myfliplr(x) myfliplr.m 第35页/共43页 2021年7月25日37 function printyh(n

22、) % 打印杨辉三角形打印杨辉三角形, 本函数没有输出参数本函数没有输出参数 yh=1; disp(yh); if n=1, return; end yh=1,1; disp(yh); for k=3:n yh_old=yh; k2=ceil(k/2); for l=2:k2 yh(l)=yh_old(l-1)+yh_old(l); end yh(k2+1:k)=yh(k-k2:-1:1); disp(yh); end (在matlab中可输入printyh(5)) printyh.m 第36页/共43页 2021年7月25日38 q 函数调用的一般格式函数调用的一般格式 输出实参列表输出实参

23、列表=函数名函数名(输入实参列表输入实参列表) u 函数调用时,函数调用时,实参的顺序实参的顺序应与函数定义时的应与函数定义时的形参的顺形参的顺 序序一致。一致。 u 函数可以函数可以嵌套调用嵌套调用,即一个函数可以被其它函数调用,即一个函数可以被其它函数调用, 甚至可以被它自身调用,此时称为甚至可以被它自身调用,此时称为递归调用递归调用。 u 函数所传递的参数具有可调性,函数所传递的参数具有可调性,Matlab 用两个永久变用两个永久变 量量 nargin 和和 nargout 分别记录调用该函数时的输入分别记录调用该函数时的输入 实参和输出实参的个数。实参和输出实参的个数。 第37页/共43页 2021年7月25日39 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论