《Matlab编程入门(1).ppt》由会员分享,可在线阅读,更多相关《Matlab编程入门(1).ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数学实验Matlab 编程入门(一)数学实验数学实验Matlab 编程入门编程入门q Matlab 编程简介u Matlab 作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计算、矩阵运算能力和丰富的绘图功能,同时也具有和 C、FORTRAN 等高级语言一样进行程序设计。u 在 Matlab 程序设计中,要充分利用 Matlab 数据结构的特点,提高编程效率。u 利用 Matlab 的程序控制功能,可以将有关 Matlab 命令编成程序存储在一个文件中(M 文件),然后在命令窗口中运行该文件,Matlab 就会自动依次执行文件中的命令,直到全部命令执行完毕。数学实验数学实验q
2、 用 Matlab 语言编写的程序称为 M 文件。q M 文件是由若干 Matlab 命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。事实上,Matlab 提供的内部函数以及各种工具箱,都是利用 Matlab 语言开发的 M 文件。用户也可以结合自己的工作需要,开发自己的程序或工具箱。q M 文件根据调用方式的不同可以分为两类:u Script:脚本文件/命令文件 u Function:函数文件 M 文件文件q M 文件以.m 为扩展名。数学实验数学实验q M 文件是一个文本文件,可以用任何文本编辑器来建立和编辑,通常使用 Matlab 自带的 M 文件编辑器。M 文件的建立与打
3、开文件的建立与打开q 新建一个 M 文件u 菜单操作(File New M-File)u 命令操作(edit M 文件名)u 命令按钮(快捷键)q 打开已有的 M 文件u 菜单操作 (File Open)u 命令操作(edit M 文件名)u 命令按钮 (快捷键)u 双击 M 文件 数学实验数学实验u 在命令窗口中输入 f2cs,即可执行该 M 文件。例:编写一个脚本文件将华氏温度转化为摄氏温度脚本文件举例脚本文件举例clear;%清除当前工作空间中的变量f=input(Please input Fahrenheit temperature:);c=5*(f-32)/9;fprintf(The
4、 centigrade temperature is%gn,c);u 新建一个 M 文件 f2cs.m,内容如下:脚本文件运行后,文件中所产生的所有变量都驻所有变量都驻留在留在 Matlab 当前工作空间当前工作空间,可以用 whos 查看。数学实验数学实验关系运算关系运算小于小于大于大于=大于等于大于等于=等于等于=不等于不等于l 比较大小,如果结论是 真真 则返回 1,否则返回 0l 注意=与=的区别l 关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一样。q 关系关系运算符运算符数学实验数学实验例:例:
5、关系运算关系运算举例举例 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;x B=1 2 3;4 5 6;7 8 9;disp(B)数据输出数据输出 dispu 数据的输出:disp A=Hello,Tom!;disp(A)例:例:数学实验数学实验数据输出数据输出 fprintffprintf(fid,format,variables)按指定的格式将变量的值输出到指定的文件u 数据的输出:fprintfl fid 为文件句柄,若缺省,则将变量的值输出到屏幕上l format 用来指定数据输出时采用的格式,常见的有%e(采用科学计算形式采用科
6、学计算形式)%f(采用浮点数形式采用浮点数形式)%g(由系统自动选取上述两种格式之一由系统自动选取上述两种格式之一)%s(输出字符串输出字符串)l format 中还可以使用一些特殊格式,如:n(换行换行)t(制表符制表符)b(退格退格)(反斜杆反斜杆)%(百分号百分号)数学实验数学实验数据输出数据输出 fprintf a=Hello;b=2.4;c=100*pi;fprintf(a=%s,b=%f,c=%en,a,b,c)例:例:l format 中的输出格式要与输出变量一一对应l 可以没有输出变量 fprintf(Today is Mondayn)例:例:数学实验数学实验pauseu 程序
7、的暂停:pausepause 或或 pause(n)若想强行终止程序的运行,可以使用 Ctrl+c其中 n 是延迟时间,以秒为单位;若缺省,则将暂停程序,直到用户按任意键后继续l pause off 屏蔽程序中所有屏蔽程序中所有 pause 的作用的作用l pause on 打开打开 pause 的作用的作用数学实验数学实验选择结构选择结构 是根据给定的条件成立或不成立,分别执行不同的语句。Matlab 用于实现选择结构的语句有 if 语句和 switch 语句。选择结构选择结构数学实验数学实验l 单分支结构if expression(条件)条件)statements(语句组)语句组)endi
8、f 条件语句条件语句if expression(条件)条件)statements1(语句组语句组1)else statements2(语句组语句组2)endl 双分支结构数学实验数学实验if expression1(条件1)statements1(语句组1)elseif expression2(条件2)statements2(语句组2).elseif expressionm(条件m)statementsm(语句组m)else statements(语句组)endl 多分支结构if 条件语句条件语句数学实验数学实验if 语句举例语句举例u 数论中的一个有趣问题:任取一个正整数,如果是偶数,用 2
9、 除,如果是奇数,用 3 乘再加 1,反复这个过程,直到所得到的数为 1。问:是否存在使该过程永不中止的整数?(exp01.m)数学实验数学实验while 1 n=input(Please enter n(nonpositive quit):);if n1 if rem(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);endif 语句举例语句举例数学实验数学实验l 根据表达式的不同取值,分别执行不同的语句。switch expression(表达式)
10、表达式)case value1(表达式表达式1)statement1(语句组语句组1)case value2(表达式表达式2)statement2(语句组语句组2).case valuem(表达式表达式m)statementm(语句组语句组m)otherwise statement(语句组)语句组)endswitch 语句语句数学实验数学实验l Matlab 首先计算 expression 的值,然后将它依次与各个 case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch 结构。l switch 后面的表达式 expression 的值可以是一个标量或字符
11、串。switch 语句语句l otherwise 指令可以不出现。l 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch 结构。数学实验数学实验循环结构循环结构 是按照给定的条件,重复执行指定的语句。Matlab 用于实现循环结构的语句有 for 语句语句和 while 语句语句循环结构循环结构数学实验数学实验for variable=expression statement(循环体)end循环变量循环变量l 表达式 expression 可以是行向量,也可以是矩阵for 循环循环clear;y=0;n=100;for k=1:n y=y+1/(2*k-
12、1);end例:例:已知 ,当,当 n=100 时,求时,求 y 的值的值数学实验数学实验l 循环语句可以嵌套使用while 循环循环while expression(条件)statement(循环体)endl 不能在 for 循环体内改变循环变量的值l 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for 循环的使用l 如果预先就知道循环的次数,则可以采用 for 循环;否则,如果预先无法确定循环的次数,则可以使用 while 循环。数学实验数学实验l 这个例子给出了计算 eps 的一种方法。l 这里我们用大写 EPS,因此系统中 eps 的值不会被覆盖。当 EPS=eps 时
13、,条件仍成立;而当 EPS=eps/2 时,条件为假,退出循环,所以最后应有 EPS=eps/2。num 用来记录循环次数。u 计算 Matlab 中 eps 值 (exp02.m)while 循环举例循环举例num=0;EPS=1;while(1+EPS)1 EPS=EPS/2;num=num+1;end数学实验数学实验u break 和 continuel break 语句用于终止循环的执行,即跳出最内层循环 l continue 语句用于结束本次循环,进行下一次循环 l break 和 continue 一般与 if 语句配合使用其它流控制语句其它流控制语句u returnl return 语句用于退出正在运行的脚本或函数,通常用在函数文件中。数学实验数学实验首先由计算机随机产生一个 1,100 之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示 High,小于则显示 Low,等于则显示 You won!,同时退出游戏。用户最多有 7 次机会。程序示例程序示例u 猜数游戏
限制150内