matlab编程入门基础

上传人:hs****ma 文档编号:578231275 上传时间:2024-08-23 格式:PPT 页数:44 大小:416KB
返回 下载 相关 举报
matlab编程入门基础_第1页
第1页 / 共44页
matlab编程入门基础_第2页
第2页 / 共44页
matlab编程入门基础_第3页
第3页 / 共44页
matlab编程入门基础_第4页
第4页 / 共44页
matlab编程入门基础_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《matlab编程入门基础》由会员分享,可在线阅读,更多相关《matlab编程入门基础(44页珍藏版)》请在金锄头文库上搜索。

1、数学实验Matlab 编程入门(一)Matlab 编程入门编程入门l Matlab 作为一种广泛应用于科学计算的工具软件,不仅作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算能力和丰富的绘图功能,同时也可以具有强大的数值计算能力和丰富的绘图功能,同时也可以与与 C、FORTRAN 等高级语言一样进行等高级语言一样进行程序设计程序设计l 利用利用 Matlab 的程序控制功能,将相关的程序控制功能,将相关 Matlab 命令编成命令编成程序存储在一个文件中(程序存储在一个文件中(M 文件文件),然后在命令窗口中运),然后在命令窗口中运行该文件,行该文件,Matlab 就会自动依次执行

2、文件中的命令,直到就会自动依次执行文件中的命令,直到全部命令执行完毕全部命令执行完毕l 在在 Matlab 程序设计中,要充分利用程序设计中,要充分利用 Matlab 数据结构的数据结构的特点,提高编程效率特点,提高编程效率q Matlab 编程简介编程简介q M 文件介绍文件介绍主要内容主要内容q Matlab 编程基础编程基础l 算术运算、关系运算、逻辑运算算术运算、关系运算、逻辑运算l 控制结构:顺序结构、选择结构、循环结构控制结构:顺序结构、选择结构、循环结构l 用用 Matlab 语言编写的程序称为语言编写的程序称为 M 文件文件l M 文件以文件以 .m 为扩展名为扩展名l M 文

3、件是由若干文件是由若干 Matlab 命令组合在一起构成的,它可命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法以完成某些操作,也可以实现某种算法q M 文件分类(根据调用方式的不同)文件分类(根据调用方式的不同)l Script:脚本文件脚本文件/命令文件命令文件l Function:函数文件函数文件 M 文件文件q M 文件介绍文件介绍可以直接运行的可以直接运行的M文件文件q M 文件的创建的与编辑文件的创建的与编辑 M 文件是文本文件,可以用任何文本编辑器来建立和编辑,文件是文本文件,可以用任何文本编辑器来建立和编辑,通常使用通常使用 Matlab 自带的自带的 M 文件编辑

4、器文件编辑器M 文件文件l 新建一个新建一个 M 文件文件l 菜单操作菜单操作 ( File New M-File )l 命令操作命令操作 ( edit M 文件名文件名 )l 命令按钮命令按钮 ( 快捷键快捷键 )l 打开已有的打开已有的 M 文件文件l 菜单操作菜单操作 ( File Open )l 命令操作命令操作 ( edit M 文件名文件名 )l 命令按钮命令按钮 ( 快捷键快捷键 )l 双击双击 M 文件文件 l 在命令窗口中输入在命令窗口中输入 fcs,即可执行该即可执行该 M 文件文件例:例:编写编写M文件,将华氏温度转化为摄氏温度:文件,将华氏温度转化为摄氏温度:编程示例编

5、程示例clear; % 清除当前工作空间中的所有变量清除当前工作空间中的所有变量f=input(Input Fahrenheit temperature:);c=5*(f-32)/9;fprintf(The centigrade temperature is %gn,c);l 新建一个新建一个 M 文件文件 fcs.m,内容如下:内容如下:l M文件运行所产生的文件运行所产生的变量都驻留在变量都驻留在 Matlab 当前工作空间当前工作空间l 百分号是注释符百分号是注释符l M文件必须在当文件必须在当前工作目录前工作目录下或已存的下或已存的搜索路径搜索路径下才能运行下才能运行q M 文件介绍文

6、件介绍主要内容主要内容q Matlab 编程基础编程基础l 算术运算、关系运算、逻辑运算算术运算、关系运算、逻辑运算l 控制结构:顺序结构、选择结构、循环结构控制结构:顺序结构、选择结构、循环结构关系运算关系运算小于小于大于大于=大于等于大于等于=等于等于=不等于不等于l 比较大小,如果结论是比较大小,如果结论是 真真 则返回则返回 1 ,否则返回,否则返回 0l 注意注意 = = 与与 = 的区别的区别l 关系操作符可以比较两个关系操作符可以比较两个同样大小同样大小的数组,或用来的数组,或用来比较比较一个数组和一个标量一个数组和一个标量,在后一种情况,标量和数,在后一种情况,标量和数组中的每

7、一个元素相比较,比较结果与数组大小一样组中的每一个元素相比较,比较结果与数组大小一样q 关系关系运算符运算符例:例:关系运算关系运算举例举例 2+2=4 23 A=1 3 5; 2 0 6; B=3 1 0; 2 4 6; A=B x=5 0; 4 2; x10ifflag%DoSomethingend上面的表达式就可以防止denum等于0的情况。当然,如果你希望在判断的时候,对A和B表达式都进行计算,就应该使用标准的&或者|。Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。 逻辑运算逻辑运算q 逻辑运算符逻辑运算符ifflag=denum=0

8、&num/denum10%DoSomethingend与ifflag=denum=0&num/denum10%DoSomethingend执行的结果一样 运算对象与或非异或ABA&BA|BAXor(A,B)000010010111100101111100逻辑运算表逻辑运算表在在 Matlab 中,中,0 表示表示 “假假”,非零表示,非零表示 “真真”all(x)如果向量如果向量 X 中中所有元素都非零所有元素都非零,则返回,则返回 1,否则返回否则返回 0若 x 为矩阵,则 any 和 all 按列运算,返回一个 0-1 向量逻辑运算逻辑运算l 相关函数any(x)如果向量如果向量 X 中中

9、存在非零元素存在非零元素,则返回,则返回 1,否则返回否则返回 0isfinite(x)若 x 为有限值,返回真值 1isinf(x)若 x 为无穷大,返回真值 1isnan(x)若 x 为不定值,返回真值 1isreal(x)若 x 无虚部,返回真值 1isstr(x)若 x 为一个字符串,返回真值 1isempty(x)若 x 为空,返回真值 1一些测试函数一些测试函数 isfinite(5) isinf(5)括号括号幂,点幂幂,点幂正号,负号,逻辑非正号,负号,逻辑非乘,除,点乘,点除乘,除,点乘,点除加,减加,减冒号运算冒号运算关系运算关系运算&|&|运算优先级运算优先级高低q M 文

10、件介绍文件介绍主要内容主要内容q Matlab 编程基础编程基础l 算术运算、关系运算、逻辑运算算术运算、关系运算、逻辑运算l 控制结构:控制结构:l 顺序结构:顺序结构:数据输入输出(数据输入输出(input、disp、fprintf 等)等)l 选择结构:选择结构:if 语句、语句、switch 语句语句l 循环结构:循环结构:for 循环、循环、while 循环循环q 程序控制结构有三种:程序控制结构有三种: 顺序结构顺序结构、选择结构选择结构和和循环结构循环结构 任何复杂的程序都由这三种基本结构组成任何复杂的程序都由这三种基本结构组成 M文件控制流文件控制流l 按排列顺序依次执行各条语

11、句,直到程序的最后按排列顺序依次执行各条语句,直到程序的最后l 这是最简单的一种程序结构,一般涉及数据的输入输这是最简单的一种程序结构,一般涉及数据的输入输出、数据的计算或处理等出、数据的计算或处理等u 顺序结构顺序结构例例:A=input(Please input A: )l 数据的输入:数据的输入:inputA=input(提示信息提示信息)l 其中其中 提示信息提示信息 为字符串,为字符串,l 该命令要求用户输入该命令要求用户输入 A 的值的值 (可以是数或字符串可以是数或字符串)inputname=input(Whats your name? )例例:l 输入字符串时必须带单引号输入字

12、符串时必须带单引号l 单引号的输出单引号的输出disp(X)l 输出变量输出变量 X 的值,的值,X 可以是数值矩阵或字符串可以是数值矩阵或字符串l 一次只能输出一个变量一次只能输出一个变量 B=1 2 3; 4 5 6; 7 8 9; disp(B)displ 数据的输出:数据的输出:disp A=Hello, Tom!; disp(A)例:例:fprintffprintf(fid,format,variables)l 数据的格式化输出:数据的格式化输出:fprintfl 按按指定的格式指定的格式将变量的值输出到屏幕或指定的将变量的值输出到屏幕或指定的文件文件l fid 为文件句柄,若缺省,

13、则输出到屏幕上为文件句柄,若缺省,则输出到屏幕上l format 用来指定数据输出时采用的格式,包含:用来指定数据输出时采用的格式,包含: 普通字符串、格式字符串、转义字符普通字符串、格式字符串、转义字符 %d (整数整数 ) %e (实数:科学计数法形式实数:科学计数法形式 ) %f (实数:小数形式实数:小数形式) %g (由系统自动选取上述两种格式之一由系统自动选取上述两种格式之一) %s ( 输出字符串输出字符串) n ( 换行换行 ) t ( 制表符制表符 ) b ( 退格退格 ) ( 反斜杆反斜杆 ) % ( 百分号百分号 )fprintf a=Hello; b=2.4; c=10

14、0*pi; fprintf(a=%s, b=%f, c=%en,a,b,c)例:例:l format 中的中的格式字符串格式字符串要与输出变量一一对应要与输出变量一一对应l 可以没有输出变量可以没有输出变量 fprintf( Today is Mondayn)例:例:pausel 暂停暂停:pausepause 或或 pause(n)若想强行终止正常运行的程序,可以使用若想强行终止正常运行的程序,可以使用 Ctrl+cl 其中其中 n 是暂停的时间,以秒为单位是暂停的时间,以秒为单位l 若缺省,则将暂停程序,直到用户按任意键后继续若缺省,则将暂停程序,直到用户按任意键后继续l pause of

15、f 屏蔽程序中所有屏蔽程序中所有 pause 的作用的作用l pause on 打开打开 pause 的作用的作用选择结构选择结构 是根据给定的条件成立或不成立,分别执是根据给定的条件成立或不成立,分别执行不同的语句。行不同的语句。Matlab 用于实现选择结构的语句有用于实现选择结构的语句有 if 语句语句和和 switch 语句语句。选择结构选择结构l 单分支结构单分支结构if expr(条件条件) 语句组语句组Aendif 条件语句条件语句if expr(条件条件) 语句组语句组Aelse 语句组语句组Bendl 双分支结构双分支结构if expr1 (条件条件1) 语句组语句组Aels

16、eif expr2 (条件条件2) 语句组语句组B . . elseif exprm (条件条件m) 语句组语句组melse 语句组语句组endl 多分支结构多分支结构if 条件语句条件语句l 根据表达式的不同取值,分别执行不同的语句根据表达式的不同取值,分别执行不同的语句switch expr(表达式表达式) case value1(表达式表达式1) 语句组语句组1 case value2(表达式表达式2) 语句组语句组2 . . case valuem(表达式表达式m) 语句组语句组m otherwise 语句组语句组endswitch 语句语句l Matlab 首先计算首先计算 expr

17、ession 的值,然后将它依次与各的值,然后将它依次与各个个 case 指令后的检测值进行比较,当比较结果为真时,指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出就执行相应的语句组,然后跳出 switch 结构结构l switch 后面的表达式后面的表达式 expression 的值可以是一个的值可以是一个标量或字符串标量或字符串switch 语句语句l otherwise 指令可以不出现指令可以不出现l 如果所有的比较结果都为假,则执行如果所有的比较结果都为假,则执行 otherwise 后后面的语句组,然后跳出面的语句组,然后跳出 switch 结构结构l 关于关于

18、 switch 语句的几点注解:语句的几点注解:选择结构的语法格式选择结构的语法格式与与C C语言对照语言对照MATLAB:if a= =bif c=d matlab=c;else matlab=c; pascal=matlab; endendC:if (a= =b) if (c!=d) matlab=c; else matalb=!c; pascal=matlab; MATLAB: C:switch 表表达达式式(标标量量或或字字符符串串)switch 表表达达式式(标标量量或或字字符符串串))case 常量表达式常量表达式 case常量表达式:常量表达式: 语句语句 语句;语句;break

19、; case 常量表达式常量表达式2 case常量表达式常量表达式2 : 语句语句2 语句;语句;break; otherwise/default default:语句语句n 语句语句nend选择结构的语法格式选择结构的语法格式与与C C语言对照语言对照循环结构循环结构 是按照给定的条件,重复执行指定的语句。是按照给定的条件,重复执行指定的语句。Matlab 用于实现循环结构的语句有用于实现循环结构的语句有 for 语句语句和和 while 语句语句循环结构循环结构for var = expr 循环体循环体end循环变量循环变量l 表达式表达式 expr 可以是行向量,也可以是矩阵可以是行向量

20、,也可以是矩阵for 循环循环clear;y=0; n=100;for k=1:n y=y+1/(2*k-1);end例:例:已知已知 ,当当 n=100 时,求时,求 y 的值的值l 循环语句可以嵌套使用循环语句可以嵌套使用while 循环循环while expr(条件条件) 循环体循环体endl 不能在不能在 for 循环体循环体内改变循环变量的值内改变循环变量的值l 为了提高代码的运行效率,应尽可能提高代码的向量为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免化程度,避免 for 循环循环的使用的使用l 如果预先就知道循环的次数,则可以采用如果预先就知道循环的次数,则可以采用

21、for 循环循环;否则,如果预先无法确定循环的次数,则可以使用否则,如果预先无法确定循环的次数,则可以使用 while 循环循环。循环结构的语法格式循环结构的语法格式与与C C语言对照语言对照 Matlab Cwhile a=b while(a=b) c=c+1; c+=1;endwhile循环的格式为:循环的格式为: for循环的格式为:循环的格式为: Matlab Cfor i1 :2: 100 for(i=1;i=100;i=i+2) c(i)=c(i)+1; end c(i)=c(i)+1; MATLAB中循环变量的步长缺省值是。步长中循环变量的步长缺省值是。步长可以在正实数或负实数范

22、围内任意指定,循环变量的可以在正实数或负实数范围内任意指定,循环变量的值大于(步长为负数时小于)终止值时,循环结束。值大于(步长为负数时小于)终止值时,循环结束。 循环结构的语法格式循环结构的语法格式与与C C语言对照语言对照l break 和和 continuel break 语句用于语句用于终止循环终止循环的执行,即跳出最内层循环的执行,即跳出最内层循环 l continue 语句用于结束语句用于结束本次循环本次循环,进行下一次循环,进行下一次循环 l break 和和 continue 一般与一般与 if 语句配合使用语句配合使用其它流控制语句其它流控制语句l returnl retur

23、n 语句用于语句用于退出退出正在运行的脚本或函数,通常用正在运行的脚本或函数,通常用在函数文件中在函数文件中编程示例编程示例 数论中的一个有趣问题:数论中的一个有趣问题:3n+1 问题:问题:任取一个正整数,如果是偶数,用任取一个正整数,如果是偶数,用 2 除,如果是奇数,除,如果是奇数,用用 3 乘再加乘再加 1,反复这个过程,直到所得到的数为,反复这个过程,直到所得到的数为 1。问:是否存在使该过程永不中止的整数?问:是否存在使该过程永不中止的整数? 例:例: while 1 n=input(Please enter n (nonpositive quit):); if n1 if rem

24、(n,2)=0 n=n/2; else n=3*n+1; end fprintf(n n=%d,n); end fprintf(n n=%d is not we need! continue .n, nt);end编程示例编程示例l 这个例子给出了计算这个例子给出了计算 eps 的一种方法。的一种方法。l 这里我们用大写这里我们用大写 EPS,因此系统中因此系统中 eps 的值不会被覆盖。的值不会被覆盖。当当 EPS=eps 时,条件仍成立;而当时,条件仍成立;而当 EPS=eps/2 时,条件时,条件为假,退出循环,所以最后应有为假,退出循环,所以最后应有 EPS=eps/2。num 用来记

25、用来记录循环次数。录循环次数。计算计算 Matlab 中中 eps 值值while编程示例编程示例num=0; EPS=1;while (1+EPS)1 EPS=EPS/2; num=num+1;end例:例: 练练 习习n使用循环、判断等语句进行下列计算:使用循环、判断等语句进行下列计算: 1 . 2. 求出求出y=x*sin(x) 在在0xx, x=x/2; end x=1; while x+xx, x=2*x; end 试利用这个公式,计算试利用这个公式,计算 sin( /2)和和 sin(31 /2) 的值,并与的值,并与 Matlab 自带的自带的 sin 函数比较,误差分别多大?为什么?函数比较,误差分别多大?为什么?3 3、假设公鸡每只、假设公鸡每只5 5元,母鸡每只元,母鸡每只3 3元,小鸡三只元,小鸡三只1 1元。元。 现有现有100100元钱,要求买元钱,要求买100100只鸡,只鸡,问:公鸡、母鸡、小鸡各买多少只?问:公鸡、母鸡、小鸡各买多少只?上机作业上机作业

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号