MATLAB及程序设计MATLAB与物理学

上传人:壹****1 文档编号:568425161 上传时间:2024-07-24 格式:PPT 页数:221 大小:1.74MB
返回 下载 相关 举报
MATLAB及程序设计MATLAB与物理学_第1页
第1页 / 共221页
MATLAB及程序设计MATLAB与物理学_第2页
第2页 / 共221页
MATLAB及程序设计MATLAB与物理学_第3页
第3页 / 共221页
MATLAB及程序设计MATLAB与物理学_第4页
第4页 / 共221页
MATLAB及程序设计MATLAB与物理学_第5页
第5页 / 共221页
点击查看更多>>
资源描述

《MATLAB及程序设计MATLAB与物理学》由会员分享,可在线阅读,更多相关《MATLAB及程序设计MATLAB与物理学(221页珍藏版)》请在金锄头文库上搜索。

1、MATLABMATLAB及程序设计及程序设计-MATLAB-MATLAB与物理学与物理学主讲教师:顾菊观教授 理学院 2321169(661642) MATLAB及程序设计-MATLAB与物理学课程介绍课程介绍定位:选修课定位:选修课目标:了解目标:了解MATLABMATLAB,能够熟练掌能够熟练掌握在数学和物理学的应用,简单握在数学和物理学的应用,简单计算及编程,简单的数据处理及计算及编程,简单的数据处理及基本图形绘制基本图形绘制. .教材:教材:MATLABMATLAB及其在理工课程及其在理工课程中的应用指南中的应用指南( (陈怀琛陈怀琛) )特点:完全不必具备其它语言特点:完全不必具备其

2、它语言的基础,各年级各专业的同学都的基础,各年级各专业的同学都可选修。可选修。MATLAB课程安排J教学学时: 36学时(基于matlab7.1版本).J教学安排:讲课16学时,上机18学时,考试2学时.J考核要求:不得缺勤,实验报告必须交齐。平时占20%,专项练习30%,期末考查占50%。J考核方式: 考查第一章 MATLAB语言概述一、MATLAB语言的发展 matlab语言是由美国的Clever Moler博士于1980年开发的,美国Mathworks公司于是984年正式推出。 设计者的初衷是为解决“线性代数”课程的矩阵运算问题。 取名MATLAB即Matrix Laboratory 矩

3、阵实验室的意思。它将一个优秀软件的易用性与可靠性、通用性与专业性 、一般目的应用与高深的科学技术应用有机的相结合。MATLAB是一种直译式的高级语言,比其它程序设计语言容易。MATLAB语言与其它语言的关系仿语言与其它语言的关系仿佛和佛和C语言与汇编语言的关系一样。语言与汇编语言的关系一样。计算机语言的发展:数值运算解析运算管理、可视化智能化标志着计算机语言向标志着计算机语言向“智能化智能化”方方向发展,被称为第四代编程语言。向发展,被称为第四代编程语言。MATLAB已经不仅仅是一个“矩阵实验室”了,它集科学计算、图象处理、声音处理于一身,并提供了丰富的Windows图形界面设计方法。MATL

4、AB语言是功能强大的计算机高级语言, 它以超群的风格与性能风靡全世界, 成功地应用于各工程学科的研究领域。MATLAB在美国已经作为大学理工科学生必修的计算机语言之一 (C, FORTRAN, ASSEMBLER, MATLAB)。近年来,MATLAB语言已在我国推广使用,现在已应用于各学科研究部门和许多高等院校。MATLAB语言不受计算机硬件的影响,286以上的计算机都可以使用。二、matlab能在各领域做什么 工业研究与开发 数学教学,特别是线性代数 数值分析和科学计算方面的教学与研究 电子学、控制理论和物理学等工程和科学 学科方面的教学与研究 经济学、化学和生物学等计算问题的所有其他领域

5、中的教学与研究例、用一个简单命令求解线性系统 3x1+ x2 - x3 = 3.6 x1+2x2+4x3 = 2.1 -x1+4x2+5x3 = -1.4A=3 1 -1;1 2 4;-1 4 5;b=3.6;2.1;-1.4;x=Abx = 1.4818 -0.4606 0.3848对于线性系统有A*x=b例、用简短命令计算并绘制在0x6范围内的sin(2x)、sinx2、sin2x。x=linspace(0,6)y1=sin(2*x),y2=sin(x.2),y3=(sin(x).2;plot(x,y1,x, y2,x, y3)三、三、MATLAB语言的特点语言的特点1、起点高、起点高2、

6、人机界面适合科技人员、人机界面适合科技人员3、强大而容易的作图功能、强大而容易的作图功能4、智能化程度高、智能化程度高5、功能丰富,可扩展性强、功能丰富,可扩展性强四、四、MATLAB语言的功能:语言的功能:1、强大的数值(矩阵)运算功能、强大的数值(矩阵)运算功能2、广泛的符号运算功能、广泛的符号运算功能3、高级与低级兼备的图形功能(计算结果、高级与低级兼备的图形功能(计算结果的可视化功能)的可视化功能)4、可靠的容错功能、可靠的容错功能5、应用灵活的兼容与接口功能、应用灵活的兼容与接口功能6、信息量丰富的联机检索功能、信息量丰富的联机检索功能五、五、MATLAB的工作环境的工作环境1、命令

7、窗由工作空间:Workspace,历史命令Command History,当前目录Current Directory 命令窗Command Windows。命令窗是用户与MATLAB进行人机对话的主要环境。台式电脑:按PrtSc键手提电脑:按住fn键,再按prt sc键 pians = 3.1416 format pians = 3.1416 format long pians = format short e pians = 3.1416e+000 format long e pians = format hex pians = 400921fb54442d18 format bank pi

8、ans = 3.14 format + pians =+Format命令的应用: format rat pians = 355/113 format short pi ans = 3.1416Help命令的应用: help format FORMAT Set output format. FORMAT with no inputs sets the output format to the default appropriate for the class of the variable. For float variables, the default is FORMAT SHORT. FO

9、RMAT does not affect how MATLAB computations are done. Computations on float variables, namely single or double, are done in appropriate floating point precision, no matter how those variables are displayed. Computations on integer variables are done natively in integer. Integer variables are always

10、 displayed to the appropriate number of digits for the class, for example, 3 digits to display the INT8 range -128:127. FORMAT SHORT and LONG do not affect the display of integer variables. 。退出MATLAB:1、fileExit matlab2、在命令窗口中键入exit或 quit3、单击命令窗右上角图形窗:logo文本编辑窗:filenewM-file 六、演示程序命令窗中键入:demo可以通过演示程序

11、,模仿编辑相关程序。第二章第二章 基本语法基本语法2.1 2.1 变量及其赋值变量及其赋值2.2 2.2 矩阵的初等运算矩阵的初等运算 2.3 2.3 元素群运算元素群运算 2.4 2.4 逻辑判断与流程控制逻辑判断与流程控制2.5 2.5 基本绘图方法基本绘图方法2.6 M2.6 M文件及程序调试文件及程序调试2.12.1变量及其赋值 (1)标识符与数 (2)矩阵及其元素的赋值 (3)复数 (4)变量检查 (5)基本赋值矩阵一、标识符与数一、标识符与数标识符:标识符是标志变量名、常量名、函数名和文件名的字符串的总称。MATLAB中的中的标识符最长允许19个字符 ,合法字符是52个英文字母(大

12、小写看成不同字符)、10个数字和下划线。第一个字符必须是英文字母.MATLAB中的数中的数 MATLAB中的实数只有一种数据格式,那就是双精度(即64位二进制或8 8个字节个字节),它的有效值是十进制16位,动态范围是10的308次幂。 2.225110 3081.797710+308 数的存储和运算全按同一格式进行,使编程简单,减少差错,改善人机交互,付出代价是内存空间和运行速度,形成MATLAB的一大特色。数的八种显示格式MATLAB 命令显 示 形 式说 明 format long3.1415926535897916位十进制数 format short e3.1416e+0005位十进制

13、数加指数 format long e 3.14159265358979e+016位十进制加指数 format hox400921fb54442d1816位十六进制数 format bank3.14两位小数 format + + 正、负或零 format rat 355 / 113 有理数分数近似format short (默认) 3.1416二位整数, 四位小数 二、矩阵及其元素的赋值二、矩阵及其元素的赋值 格式1:变量表达式(或常量) 格式2:表达式表达式中的运算符有:加(+)、减(-) 、乘(*) 、左除() 、右除(/) 、指数() 、共軛转置()、矩阵()等。表达式的结尾标点:若为分号

14、;,不显示;若为逗号,或直接回车,显示运算结果。矩阵的输入方法:(1)直接输入 A=1 2 3 ;4 5 6 ;6 7 8A = 1 2 3 4 5 6 6 7 8 A=1 2 3 ;4 5 6 ;6 7 8; A=1,2,3 ;4,5,6 ;6,7,8A = 1 2 3 4 5 6 6 7 8 A=1 2 33 4 5 6 7 8A = 1 2 3 3 4 5 6 7 8(2)冒号表达式生成向量基本格式 A=1:5;6:10;11:15A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B=1:0.1:2;5:0.1:6B = 1.0000 1.1000 1.20

15、00 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 5.0000 5.1000 5.2000 5.3000 5.4000 5.5000 5.6000 5.7000 5.8000 5.9000 6.0000(3)线性等分向量生成 y=linspace(x1,x2) 生成100维行向量 y=linspace(x1,x2,n) 生成n维行向量a=linspace(1,100,6)a = 1.0000 20.8000 40.6000 60.4000 80.2000 100.0000(4)对数等分向量生成 y=logspace(x1,x2

16、)生成50维对数等分向量, y=logspace(x1,x2,n) 生成n维对数等分向量a=logspace(0,5,6)a = 1 10 100 1000 10000 100000(5)随机数产生矩阵rand(m,n)产生 维,区间在0,1之间均匀分布的随机数,其均值为0.5.randn(m,n)产生 维,均值为0标准差为1的正态分布. A=rand(1,6)A = 0.9501 0.2311 0.6068 0.4860 0.8913 0.7621 B=rand(2,5)B = 0.4565 0.8214 0.6154 0.9218 0.1763 0.0185 0.4447 0.7919 0

17、.7382 0.4057 C=randn(3,6)C = -0.4326 0.2877 1.1892 0.1746 -0.5883 0.1139 -1.6656 -1.1465 -0.0376 -0.1867 2.1832 1.0668 0.1253 1.1909 0.3273 0.7258 -0.1364 0.0593单位矩阵:eye(m,n); eye(m)零 矩 阵: zeros(m,n); zeros(m)一 矩 阵: ones(m,n); ones(m)对角矩阵: 对角元素向量 V=a1,a2,an A=diag(V)随机矩阵: rand(m,n)产生一个mn的均匀分别的随机 矩阵(

18、6)常用的特殊矩阵)常用的特殊矩阵 如果已知A为方阵,则V=diag(A)可以提取A的对角元素构成向量V。eye(2,3)ans= 1 0 0 0 1 0zeros(2,3)ans= 0 0 0 0 0 0ones(2,3)ans= 1 1 1 1 1 1V=5 7 2; A=diag(V)A= 5 0 0 0 7 0 0 0 2eye(2)ans= 1 0 0 1zeros(2)ans= 0 0 0 0ones(2)ans= 1 1 1 1 compan 友矩阵函数 magic 魔方矩阵 hankel Hankel矩阵 rosser 对称特征值测试矩阵 hilb Hilbert矩阵 pasc

19、al Pascal矩阵 invhilb 反Hilbert矩阵 vander 范德蒙矩阵 (7)其他特殊矩阵)其他特殊矩阵零零矩矩阵阵:所有元素值为零的矩阵称为零矩阵。零矩阵可以用zeros函数实现。zeros是MATLAB内部函数,使用格式如下: zeros(m):产生m*m阶零矩阵; zeros(m,n):产生m*n阶零矩阵,当m=n时等同 于zeros(m); zeros(size(A):产生与矩阵A同样大小的零矩阵。(8)特殊矩阵的实现常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵、三角形矩阵等,这类特殊矩阵在线性代数中具有通用性;还有一类特殊矩阵在专门学科中有用,如有名的希尔伯特(Hilbe

20、rt)矩阵、范德蒙(Vandermonde) 矩阵等。空矩阵空矩阵在MATLAB里,把行数、列数为零的矩阵定义为空矩阵。空矩阵在数学意义上讲是空的,但在MATLAB里确是很有用的。例如 A=0.1 0.2 0.3;0.4 0.5 0.6; B=find(A1.0) B = 这里 是空矩阵的符号,B=find(A1.0)表示列出矩阵A中值大于1.0的元素的序号。当不能满足括号中的条件时,返回空矩阵。另外,也可以将空矩阵赋给一个变量,如: B= 三、复数三、复数虚数符号MATLAB启动时定为i,j,可以不用乘号,连写在数字后面。如果用户在程序中另外給i,j赋值,则它们的虚数意义就失效。 conj(

21、x)表示共軛,即把x的虚部反号。 是共軛转置运算符,对实矩阵把行号与列号交换,对复矩阵除行列交换外,还要把矩阵元素取共軛。 A=3+5.5iA = 3.0000 + 5.5000i B=5+0.332jB = 5.0000 + 0.3320i C=1+2i,3+4i;5+6i,7+8iC = 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i D=1,2;5 7+2 4;6 8*iD = 1.0000 + 2.0000i 2.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.

22、0000i F=sqrt(2+3i)F = 1.6741 + 0.8960i F*Fans = 2.0000 + 3.0000i四、变量检查四、变量检查变量检查命令who,whos打开工作空间视窗在检查中不显示内部变量eps,realmax,realmin,pii,j,inf,NaN x=-2*pi:0.02:2*pi; y=sin(x).*cos(x)+sin(3*x).*cos(x).2; plot(x,y) whoYour variables are:x y whos Name Size Bytes Class x 1x629 5032 double array y 1x629 5032

23、 double arrayGrand total is 1258 elements using 10064 bytes五、特殊矩阵赋值函数(表2-1)zeros(n,m)全零矩阵(nm阶)ones(n,m)全么矩阵(nm阶)rand(n,m)随机数矩阵(nm阶)randn (n,m)正态随机数矩阵(nm阶)eye(n)单位矩阵( nn方阵)linspace(xs,xf,N)均分向量(1N阶数组)矩阵组合与显示矩阵组合与显示大矩阵可由若干个小矩阵组成,但必须其行列数正确,恰好填满全部元素。一个矩阵中所有元素用同一显示格式。有一个是小数则都用小数;当矩阵中的最大元素小于0.001,或其最小元素大于

24、1000时,MATLAB会把其公因子提出来 。元素大小差别很大时,不宜用矩阵显示。 2.2 2.2 矩阵的初等运算矩阵的初等运算 (1)矩阵数值的表示方法(前面已讲);(2)矩阵的加减乘法;(3)矩阵的除法和线性方程解;(4)矩阵的乘方和超越函数;一、矩阵的加减法一、矩阵的加减法两矩阵进行加减的条件是其行数和列数相同,两矩阵进行加减的条件是其行数和列数相同,简称阶次相同,矩阵的加减即其对应元素的简称阶次相同,矩阵的加减即其对应元素的加减。加减。size(A)=size(B)如果其中一个变量是标量,则会自动扩展成如果其中一个变量是标量,则会自动扩展成各元素均取此标量值的同阶次矩阵。各元素均取此标

25、量值的同阶次矩阵。 A=rand(2,3)A = 0.9355 0.4103 0.0579 0.9169 0.8936 0.3529 B=rand(5,6)B = 0.8132 0.6038 0.4451 0.5252 0.6813 0.4289 0.0099 0.2722 0.9318 0.2026 0.3795 0.3046 0.1389 0.1988 0.4660 0.6721 0.8318 0.1897 0.2028 0.0153 0.4186 0.8381 0.5028 0.1934 0.1987 0.7468 0.8462 0.0196 0.7095 0.6822 size(A)a

26、ns = 2 3 size(B)ans = 5 6 A=1 2;3 4A = 1 2 3 4 B=5 6 ;7 8B = 5 6 7 8 C=A+BC = 6 8 10 12 D=A-BD = -4 -4 -4 -4二、矩阵的乘法二、矩阵的乘法c(i,j)=a(i,1)*b(1,j) + a(i,2)*b(2,j) + + a(i,p)*b(p,j) = pa(i,k)*b(k,j)矩阵的乘法矩阵的乘法两矩阵相乘两矩阵相乘C=A*B的条件是的条件是A的列数等于的列数等于B的行数,简称内阶数相同。设的行数,简称内阶数相同。设矩阵矩阵A 为为np阶,矩阵阶,矩阵B为为pm阶,则阶,则C是是nm阶。

27、阶。内阶内阶数不同的矩阵不能相乘。数不同的矩阵不能相乘。不符合交换律:不符合交换律:A*BB*A,左乘不等于右,左乘不等于右乘;乘;若一个变量是标量,则按标量乘法。若一个变量是标量,则按标量乘法。 A=1 2;3 4A = 1 2 3 4 B=5 6 ;7 8B = 5 6 7 8 C=A*BC = 19 22 43 50 D=B*AD = 23 34 31 46 A=1 2;3 4;5 6%3行2列A = 1 2 3 4 5 6 B=1 2 3 4;5 6 7 8%2行4列B = 1 2 3 4 5 6 7 8 C=A*B %3行4列C = 11 14 17 20 23 30 37 44 3

28、5 46 57 6 CC=B*A %矩阵的内阶数不同不能相乘? Error using = mtimesInner matrix dimensions must agree.三、矩阵除法线性方程组线性方程组D*X=BD*X=B,如果,如果D D非奇异,即它的逆非奇异,即它的逆矩阵矩阵inv(D)inv(D)存在;存在;则其解用则其解用MATLABMATLAB表为表为 : X=inv(D)*B=DB X=inv(D)*B=DB符号符号称为左除,即分母放在左边。称为左除,即分母放在左边。左除的条件:左除的条件:B B的行数等于的行数等于D D的阶数的阶数(D(D的行数的行数和列数相同,简称阶数)和

29、列数相同,简称阶数) D=1 2 3;4 5 6;7 8 9D = 1 2 3 4 5 6 7 8 9 B=1 2;3 4;5 6B = 1 2 3 4 5 6 DBans = -0.1410 -0.4671 1.2821 0.9342 -0.4744 0.1996四、矩阵右除若方程组表为为若方程组表为为X*D1=B1X*D1=B1,D1D1非奇异,即它的逆阵非奇异,即它的逆阵inv(D1)inv(D1)存在。存在。则其解为则其解为X=B1*inv(D1)=B1/D1X=B1*inv(D1)=B1/D1符号符号/称为右除。称为右除。右除的条件:右除的条件:B1B1的列数等于的列数等于D D的阶

30、数的阶数(D(D的行数和列数的行数和列数相同,简称阶数)相同,简称阶数) D=1 2 3;4 5 6;7 8 9D = 1 2 3 4 5 6 7 8 9 B=1 2 3;4 5 6B = 1 2 3 4 5 6 D/Bans = 1.0000 0.0000 -0.0000 1.0000 -1.0000 2.0000五、线性方程组表为矩阵相乘 x1 + 2 x2 + 3 x3 = 2 3 x1- 5 x2 + 4 x3 = 07 x1 + 8 x2 + 9 x3 = 2可以表为可以表为故有故有 X=x1;x2;x3=Ab A=1 2 3;3 -5 4;7 8 9; b=2;0;-2; x=Ab

31、x = -1.9608 -0.0784 1.3725六、用矩阵除法解线性方程组解方程组 6 x1 + 3 x2 + 4 x3 = 3 -2 x1 + 5 x2 + 7 x3 = -4 8 x1 - 4 x2 - 3 x3 = -7的程序为: A = 6,3,4; -2,5,7; 8,-4,-3; B = 3;-4;-7; X = ABX = 0.6000 7.0000 -5.4000七、矩阵整体的幂次运算MATLAB的乘幂函数”、指数函数expm、对数函数logm、和开方函数sqrtm是对矩阵进行的,另外,还有矩阵乘法和除法也是把矩阵作为一个整体来运算。除此之外,其他MATLAB函数都是对矩阵

32、中的元素分别进行. C=1,2;3 4C = 1 2 3 4 C2ans = 7 10 15 22 expm(C)ans = 51.9690 74.7366 112.1048 164.0738 logm(C)ns = -0.3504 + 2.3911i 0.9294 - 1.0938i 1.3940 - 1.6406i 1.0436 + 0.7505i sqrtm(C)ans = 0.5537 + 0.4644i 0.8070 - 0.2124i 1.2104 - 0.3186i 1.7641 + 0.1458i C.2ans = 1 4 9 16 exp(C)ans = 2.7183 7.3

33、891 20.0855 54.5982 log(C)ans = 0 0.6931 1.0986 1.3863 sqrt(C)ans = 1.0000 1.4142 1.7321 2.00002.3 2.3 元素群运算元素群运算 数组及其赋值 元素群的四则运算 元素群的幂次运算 元素群的函数元素群运算能大大简化编程,提高运算的效率,是MATLAB优于其他许多语言的一个特色。 MATLAB的矩阵和数组运算的矩阵和数组运算 矩阵和数组是MATLAB中的基本单位矩阵运算 数组运算+加 -减 *乘 幂 左除 /右除 转置 .+加 .-减 .*乘 .幂 .左除 ./右除 .转置 以矩阵运算法则进行运算以相

34、应位置元素进行运算一、数组及其赋值一、数组及其赋值数组通常是指单行或单列的矩阵,也称为向量。其赋值方法:(1) x=初值:增量:终值(2) 线性分割函数 x=linspace(起点,终点,点数)(3) 对数分割函数logspace(起点对数,终点对数,点数)二、元素群的四则和幂次运算二、元素群的四则和幂次运算元素群运算:就是把两矩阵按逐个元素进行运算。为了与矩阵作为整体的运算符号相区别,要在运算符“*、”前加一点符号“” 。元素群运算的英文原文是数组运算 (Array Algorithm),实际上它适用于任何阶的矩阵,故取名元素群运算更为确切。三、元素群的函数运算三、元素群的函数运算所有的MA

35、TLAB函数都适用于作元素群运算,只有专门说明的几个除外。就是*、/、 运算符和sqrtm、expm、logm三个函数。实例,做一个三角函数表:x=0:0.1:pi/4;x,sin(x),cos(x),tan(x) x=0:0.1:pi/4;disp( x sin(x) cos(x) tan(x)x,sin(x),cos(x),tan(x) x sin(x) cos(x) tan(x)ans = 0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 0.4

36、000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.8423 disp(x,sin(x),cos(x),tan(x) 0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5

37、646 0.8253 0.6841 0.7000 0.6442 0.7648 0.8423 disp(x sin(x) cos(x) tan(x) 0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.8423关系与逻辑运算n关系运算符n逻辑运算

38、符 = = =& 与与 | 或或 非非 xor异或异或n函数all (x) 检查列向量中元素是否全为非零检查列向量中元素是否全为非零any(x) 检查列向量中有无非零元素检查列向量中有无非零元素2.4 逻辑判断及流程控制逻辑判断及流程控制小于小于 大于大于 小于等于小于等于 大于等于大于等于 等于等于 不等于不等于关系运算例子: A=2+3=4A = 0 A=2+3=5A = 1 A=2+3=5A = 1 A=2+3=9A = 1逻辑运算例子: A=1; B=0; A&Bans = 0 A|Bans = 1 Aans = 0 xor(A,B)ans = 1 A=1 1 0;1 1 1;0 0

39、0;0 1 0A = 1 1 0 1 1 1 0 0 0 0 1 0 all(A)ans = 0 0 0 any(A)ans = 1 1 1流程控制语句 if A1 % 表达式表达式1 B1 %命令命令1 elseif A2 % 表达式表达式2 B2 %命令命令2 else B3 %命令命令3 end nIf 语句例:计算下列函数的值expif.mclear %清除变量x=input(请输入一个值x=) %任意输入一个值if x=1&x10 %判断条件2是否满足y=2*x-1, %满足条件2的结果else %其他情况,即条件3 y=3*x-11, %满足条件3的结果end %程序结束请输入一个

40、值x=-9x = -9y = -9保存文件yx.mfunction y=yx(x);if x1&x yx(5)y = 9ans = 9 yx(8);y = 15nswitch 语句switch a %读入一个语句读入一个语句case A1 %情形情形1 B1 %命令命令1case A2 %情形情形2 B2 %命令命令2case otherwise Bn %最后一个命令最后一个命令判断输入数判断输入数n的奇、偶、空的程序:的奇、偶、空的程序:clear%switchm.mn=input(n=);switch mod(n,2) case 1 A=奇 case 0 A=偶 otherwise A=空

41、endn=13A =奇n=46A =偶n=45.6A =空try 语句组语句组1catch 语句组语句组2endn try语句语句 try try语句先试探性执行语句组语句先试探性执行语句组语句先试探性执行语句组语句先试探性执行语句组1 1,如果语句组,如果语句组,如果语句组,如果语句组1 1在执行在执行在执行在执行过程中出现错误,则将错误信息赋给保留的过程中出现错误,则将错误信息赋给保留的过程中出现错误,则将错误信息赋给保留的过程中出现错误,则将错误信息赋给保留的lasterrlasterr变量,变量,变量,变量,并转去执行语句组并转去执行语句组并转去执行语句组并转去执行语句组2 2。循环结

42、构nfor 语句for 变量变量=表达式表达式命令命令1命令命令2 endnwhile 语句for 用于循环次数已知用于循环次数已知while 表达式表达式 命令命令endwhile 用于循环次数未知用于循环次数未知break 语句用来跳出循环语句用来跳出循环,继续执行循环语句的下一语句。继续执行循环语句的下一语句。continue语句跳过循环体中所有剩下的语句,继续下一次循环。语句跳过循环体中所有剩下的语句,继续下一次循环。计算阶乘的程序计算阶乘的程序(prdn.m):clearprd=1; %放置乘积的变量,且设置初值为1n=10; %设置循环的次数for k=1:n %循环语句prd=p

43、rd*k; %计算阶乘endprd %输出结果主窗口输出结果:prd = 3628800也可用factorial(n)来计算: factorial(10)ans = 3628800求和的程序(一):求1到20 的阶乘和clear%sumn.msum=0;for i=1:20 prd=1; for k=1:i prd=prd*k; end sum=sum+prd;endSum主窗口输出结果:sum = 2.5613e+018求和的程序(二):求1到100的和clear%sumw.msum=0;i=1;while i x=-10:0.01:10;y=sin(3*x)+cos(5*x); plot(

44、x,y,-r) x=-10:0.01:10; y=sin(3*x)+cos(5*x); plot(x,y,-r,linewidth,2) xlabel(x) ylabel(y) x=-10:0.01:10; y=sin(3*x)+cos(5*x); plot(x,y,-r,linewidth,2)xlabel(fontsize14x),ylabel(fontsize14y)在图片窗口中双击坐标,可改变坐标字体的大小.2. 单窗口多曲线绘图例2:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)例 3

45、: t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);plot(t,y,t,y1,t,y2,t,y3,t,y4,t,y5)例4:(1)x=peaks;plot(x)(2)x=1:length(peaks);y=peaks;plot(x,y)图形是一样的.3. 单窗口多曲线分图绘图subplot 子图分割命令调用格式: subplot(m,n,p) 按从左至右, 从上至下排列 行列绘图序号t=0:pi/100:2*pi;y=sin(t);y2=sin(t+0.5

46、);y3=cos(t);subplot(1,3,1);plot(t,y)subplot(1,3,2);plot(t,y3)subplot(1,3,3);plot(t,y2)t=0:pi/100:2*pi;y=sin(t);y2=sin(t+0.5);y3=cos(t);subplot(3,1,1);plot(t,y)subplot(3,1,2);plot(t,y3)subplot(3,1,3);plot(t,y2)t=0:pi/100:2*pi;y=sin(t);y2=sin(t+0.5);y3=cos(t);subplot(2,2,1);plot(t,y)Subplot(2,2,2);plo

47、t(t,y3)subplot(2,1,2);plot(t,y2)4. 多窗口绘图 figure(n) 创建窗口函数,n为窗 口顺序号。t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y) % 自动出现第一个窗口figure(2)plot(t,y1) %在第二窗口绘图figure(3)plot(t,y2) %在第三窗口绘图 图1 图2 图35.可任意设置颜色与线型例 5:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,r-,t,y1,g:,t,y

48、2,b*)6.图形加注功能将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为: title 给图形加标题 xlable 给x轴加标注 ylable 给y轴加标注 text 在图形指定位置加标注 gtext 将标注加到图形任意位置 grid on(off) 打开、关闭坐标网格线 legend 添加图例 axis 控制坐标轴的刻度例:t=0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3;0.8;s=sin(t);cos(t);text(x,y,s);title(正弦和余弦曲线);legend(正

49、弦,余弦)xlabel(时间t),ylabel(正弦、余弦)gridaxis square axis的用法还有: axis(xmin xmax ymin ymax) 用行向量中 给出的值设定坐标轴的最大和最小值。 如axis (-2 2 0 5) axis(equal) 将两坐标轴设为相等 axis on(off) 显示和关闭坐标轴的标 记、标志 axis auto 将坐标轴设置返回自动缺 省值7.fplot 绘制函数图函数fplot的调用格式:fplot(fun,lims) 绘制函数fun在x区间 lims=xmin xmax的函数图。fplot(fun,lims,corline) 以指定线

50、形绘图。x,y=fplot(fun,lims) 只返回绘图点的值,而不绘图。用plot(x,y)来绘图。例6:fplot(sin(x),tan(x),cos(x),2*pi*-1 1 -1 1)例7:fplot(humps,0 1,rp)8.ezplot 符号函数的简易绘图函数ezplot的调用格式:ezplot(f) 这里f为包含单个符号变量x的符号表达式,在x轴的默认范围 -2*pi 2*pi内绘制f(x)的函数图ezplot(f,xmin,xmax) 给定区间ezplot(f,xmin,xmax,figure(n) 指定绘图窗口绘图。例9:ezplot(sin(x)例10:ezplot(

51、sin(x),cos(y),-4*pi 4*pi,figure(2)(二) fill 基本二维绘图函数 fill的功能:绘制二维多边形并填充颜色例11:x=1 2 3 4 5;y=4 1 5 1 4;fill(x,y,r) (三)特殊二维绘图函数 bar 绘制直方图 polar 绘制极坐标图 hist 绘制统计直方图 stairs 绘制阶梯图 stem 绘制火柴杆图 rose 绘制统计扇形图 comet 绘制彗星曲线 errorbar 绘制误差棒图 compass 复数向量图(罗盘图) feather 复数向量投影图(羽毛图) quiver 向量场图 area 区域图 pie 饼图 convh

52、ull 凸壳图 scatter 离散点图例12:绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)例13:阶梯绘图h2=1 1;1 -1;h4=h2 h2;h2 -h2;h8=h4 h4;h4 -h4;t=1:8;subplot(8,1,1);stairs(t,h8(1,:);axis(off)subplot(8,1,2);stairs(t,h8(2,:);axis(off)subplot(8,1,3);stairs(t,h8(3,:);axis(off)subplot(8,1,4);stairs(t,h8(4,:);axis(off)subplot(8,1,5

53、);stairs(t,h8(5,:);axis(off)subplot(8,1,6);stairs(t,h8(6,:);axis(off)subplot(8,1,7);stairs(t,h8(7,:);axis(off)subplot(8,1,8);stairs(t,h8(8,:);axis(off)h2=1 1;1 -1;h4=h2 h2;h2 -h2;h8=h4 h4;h4 -h4;t=1:8;for i=1:8subplot(8,1,i);stairs(t,h8(i,:)axis(off)end例14:绘制极坐标绘图t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,

54、y)例15:绘制火柴杆绘图 t=0:0.2:2*pi; y=cos(t); stem(y)例16:绘制直方图 t=0:0.2:2*pi; y=cos(t); bar(y)例17:绘制彗星曲线图 t= -pi:pi/500:pi; y=tan(sin(t)-sin(tan(t); comet(t,y)区域图,例18:x=magic(6);area(x)饼图,例19:x = 1 3 0.5 2.5 2;y = 0 1 0 0 0;pie(x,y)饼图,例20:x = 1 3 0.5 2.5 2;y = 0 1 0 0 0;pie3(x,y)pie(2 4 3 5,North,South,East,

55、West)先输入:load seamount 再输入:scatter(x,y,5,z)x,y,z = sphere(16); X = x(:)*.5 x(:)*.75 x(:); Y = y(:)*.5 y(:)*.75 y(:); Z = z(:)*.5 z(:)*.75 z(:); S = repmat(1 .75 .5*10,numel(x),1); C = repmat(1 2 3,numel(x),1); scatter3(X(:),Y(:),Z(:),S(:),C(:),filled), view(-60,60)a=rand(200,1);b=rand(200,1);c=rand(

56、200,1);scatter(a,b,100,c,p)二、三维绘图三维绘图的主要功能: 绘制三维线图 绘制等高线图 绘制伪彩色图 绘制三维网线图 绘制三维曲面图、柱面图和球面图 绘制三维多面体并填充颜色(一)三维线图plot3 基本的三维图形指令调用格式:plot3(x,y,z) x,y,z是长度相同的向量plot3(X,Y,Z) X,Y,Z是维数相同的矩阵plot3(x,y,z,s) 带开关量plot3(x1,y1,z1,s1, x2,y2,z2,s2, )二维图形的所有基本特性对三维图形全都适用。定义三维坐标轴大小 axis(xmin xmax ymin ymax zmin zmax )

57、grid on(off) 绘制三维网格 text(x,y,z,string) 三维图形标注 子图和多窗口也可以用到三维图形中例21:绘制三维线图t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)(二) 三维饼图pie3(4 3 6 8 9)(三)三维多边形fill3 = fill 三维多边形的绘制和填色与二维多边形完全相同调用格式: fill3(x,y,z,s) 与二维相同例22: 用随机顶点坐标画出5个粉色的三角形,并用黄色的表示顶点y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);fill3(y1,y2,y3,m);hold on

58、;plot3(y1,y2,y3,yo)(四)三维网格图mesh 三维网线绘图函数调用格式: mesh(z) z为nm的矩阵,x与y 坐标为元素的下标 mesh(x,y,z) x,y,z分别为三维空 间的坐标位置例23,矩阵的三维网线图z=rand(6); 0.8808 0.0729 0.4168 0.7694 0.3775 0.4776 0.3381 0.7101 0.0964 0.6352 0.3826 0.7086 0.1895 0.8791 0.6747 0.8965 0.6876 0.2380 0.7431 0.3594 0.5626 0.8784 0.1217 0.3910 0.71

59、89 0.0899 0.8130 0.4865 0.0768 0.9759 0.8792 0.1610 0.8782 0.1131 0.1433 0.6288z=round(z) 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1mesh(z);mesh(z)例24:8阶hadamard矩阵的网线图h2=1 1;1 -1;h4=h2 h2;h2 -h2h8=h4 h4;h4 -h4 1 1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 -1

60、-1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1mesh(h8)三维网线图作图要领生成坐标 X,Y=meshgrid(x,y)表达式点运算 Z=X.2+Y.2X,Y是nm的矩阵,维数可任定X nY mZ默认方位角:37。5,俯角30。nm维 meshgrid 网线坐标值计算函数 z=f(x,y) 根据x,y坐标找出z的高度例:绘制z=x2+y2的三维网线图形 x=-5:5; y=x; X,Y=meshgrid(x,y) Z=X.2+Y.2; mesh(X,

61、Y,Z)坐标矩阵坐标向量纵坐标矩阵绘图函数colormap( R,G,B) 色图设定函数matlab 的颜色数据集合为红、绿、兰三颜色矩阵R,G,B,维数m3r,g,b在0 1区间连续取值,理论上颜色种类可达无穷多种matlab使用三维向量表示一种颜色,常用颜色数据见下表 饱和色 0 0 0 黑色 0 0 1 兰色 0 1 0 绿色 0 1 1 浅兰 1 0 0 红色 1 0 1 粉红 1 1 0 黄色 1 1 1 白色 调和色0.5 0.5 05 灰色0.5 0 0 暗红色1 0.62 0.4 铜色0.49 1 0.8 浅绿0.49 1 0.83 宝石兰(五)三维曲面图surf 三维曲面绘图

62、函数,与网格图 看起来一样与三维网线图的区别:网线图:线条有颜色,空挡是黑色的(无颜色)曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化调用格式: surf(x,y,z) 绘制三维曲面图,x,y,z 为图形坐标向量例25:X,Y,Z=peaks(30)%peaks为matlab自动生成的三维测试图形surf(X,Y,Z) surfc(X,Y,Z) 带等高线的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z) surfl(X,Y,Z) 被光照射带阴影 的曲面图X,Y,Z=peaks(30);surfl(X,Y,Z) cylinde(r,n) 三维柱面

63、绘图函数 r 为半径;n为柱面圆周等分数例26:绘制三维陀螺锥面t1=0:0.1:0.9;t2=1:0.1:2;r=t1 -t2+2;x,y,z=cylinder(r,30);surf(x,y,z);grid 为球面等分数,缺省为20例27:绘制三维球面x,y,z=sphere(30);surf(x,y,z);(六) 图形修饰方法图形颜色的修饰matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形colormap(MAP) 色图设定函数,MAP为m3维色图矩阵图形颜色可根据需要任意生成,也可用matlab配备的色图函数matlab 的色图函数: hsv 饱和值

64、色图 gray 线性灰度色图 hot 暖色色图 cool 冷色色图 bone 兰色调灰色图 copper 铜色色图 pink 粉红色图 prism 光谱色图 jet 饱和值色图II flag 红、白、蓝交替色图X,Y,Z=peaks(30)%peaks为matlab自动生成的三维测试图形surf(X,Y,Z)shading faceted % 网格修饰,缺省方式shading flat 去掉黑色线条,根据小方块的值确定颜色shading interp 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色peaks(30);shading interp;colormap(hot)X,Y,Z=p

65、eaks(30);surfl(X,Y,Z)shading interp;colormap(cool);axis offpeaks(30);colormap(hot);colorbar(horiz) 图形效果修饰透视与消隐 用于网线图裁剪修饰 用于网线图、曲面图视角修饰 观察不同角度的三维视图其它修饰: a. 水线修饰 b. 等高线修饰透视与消隐p=peaks(30);mesh(p) ;hidden onp=peaks(30);mesh(p);hidden off裁减修饰p=peaks;p(30:40,20:30)=nan*p(30:40,20:30);surf(p)p=peaks;p(30:4

66、0,20:30)=nan*p(30:40,20:30);mesh(peaks,p)视角修饰(函数view(az,el) az -方位角;el - 俯视角 省缺值为:az=-37.5; el=30例。观察不同视角的波峰图形z=peaks(40);subplot(2,2,1);mesh(z);subplot(2,2,2);mesh(z);view(-15,60);subplot(2,2,3);mesh(z);view(-90,0);subplot(2,2,4);mesh(z);view(-7,-10);其它修饰: a. 水线修饰(waterfall) waterfall(peaks(30) b.

67、等高线修饰二维contour(Z,n)-绘制n条等高线C= contourc(Z,n)-计算n条等高线的坐标Clable(c)-给等高线加标注例、在二维平面上绘制peaks函数的10条等高线contour(peaks,10);contour(peaks,10);C=contourc(peaks,10);clabel(C)contour3(peaks,20)(七)、伪彩色图pcolor 常用于以二维平面图表现三维图形的效果,用颜色表示三维图形的高度。z=peaks(30)pcolor(z)(八)动画效果动画生成的步骤1.创建帧矩阵 moviein2.对动画中的每一帧生成图形,并把它们放到帧矩阵中

68、 getframe3.从帧矩阵中回放动画moviein函数函数函数m=moviein(n)用来建立一个足够大的n列的矩阵m,用来保存n幅画面的数据,以备播放。movie函数函数movie(m,n)以每秒n幅图形的速度播放由矩阵m的列向量所组成的画面。【例例2828】 播放一个不断变化的眼球程序段。m=moviein(20); %建立一个20个列向量组成的矩阵for j=1:20 plot(fft(eye(j+10) %绘制出每一幅眼球图并保存到m矩阵中 m(:,j)=getframe;endmovie(m,5);%以每秒5幅的速度播放画面再如下述程序段播放一个直径不断变化的球体。n=30;x,

69、y,z=sphere;m=moviein(n);for j=1:n surf(j*x,j*y,j*z) m(:,j)=getframe;endmovie(m,5);(九)、低层图形屏幕控制功能(九)、低层图形屏幕控制功能P46页页2.6 M文件及程序调试一、m文件1、m文件模式将matlab语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。2、m文件的创建和保存 m文件的类型是普通的文本文件,我们可以使用系统认可的文本文件编辑器来建立m文件。如dos下的edit,windo

70、ws的记事本和word等。具体的创建方法:(1)在matlab命令窗 口点击file 菜单 new m-file(2)点击file Save Workspace As将工作空间中的内容存入文件。(3) matlab命令窗口中输入!edit 用dos 下edit 编辑器编制m文件(4) matlab命令窗口中输入edit 用matlab自带的编辑器编制m文件。(5)word 用word编辑m文件。M文件的保存方法:1、文件名长度不要超过八个字符。2、不允许有汉字。3、首字必须是字母。4、不能出现特殊字符等。5、保存在自己确定的子目录中。3、matlab文件的类型(1)数据文件 .mat mat文

71、件是matlab以标准二进制格式保存的数据文件,可将工作空间中有用的数据变量保存下来。 mat文件的生成和调用是由函数save和load完成的。例如:load gatlin image(X)colormap(gray);axis equal; axis(off)4. m文件 m文件的语法类似于c语言,但又有其自身特点。它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。 m文件有两类独立的m文件 称命令文件 可调用m文件 称函数文件(1). 命令文件 简单的m文件 命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的

72、。没有输入输出参数。命令文件包括两部分:注释文件和程序文件平面简谐波:%plane.mclearx=-0.25:0.001:0.25;%设定x的取值范围for i=0:2%用循环语句令i分别取0,1,2t=0.0025*i;y=0.002*cos(pi*5*x-200*pi*t);%此为时刻t的波函数if i=0;%用选择语句分别用不同的颜色线型画不同时刻的波形图plot(x,y,k-)%用黑色实线画t=0时刻的波形图hold on%保存图形的命令,否则后一幅图会覆盖前一幅grid on%绘制网格elseif i=1; plot(x,y,r-)%用红色虚线画t=0.0025时刻的波形图else

73、if i=2; plot(x,y,b-.)%用蓝色虚点线画t=0.005时刻的波形图 end%结束if语句end%结束for语句命令窗口中输入:plane,就得到平面波图形(2).matlab内置函数文件 matlab自定义的函数文件称内置函数文件 调用内置函数的方法:使用函数名并给出相应的入口、出口参数即可。 例如:sin.m函数用type sin查不到。 调用格式:y=sin(2*x) 实际应用中: x=0:2*pi/180:2*pi; y=sin(2*x) plot(x,y)又如 sqrt(x) 求x的平方根 abs(x) 求x的绝对值 det(a) 求行列式的值 等等。matlab拥有

74、大量的内置数学函数,供我们在数值运算和符号运算中调用。(3). 函数m文件 需要输入变量,返回输出变量 matlab用户可以根据需要编辑自己的m文件,它们可以像库函数一样方便的调用,从而极大地扩展了matlab 的能力。 对于某一类特殊问题,如创建了许多m函数文件,则可形成新的工具箱。这种用matlab语言创建定义新的matlab函数的功能,正体现了matlab语言强大的扩展功能。函数m文件的格式: function 返回变量=函数名(输入变量) 注释说明语句段 程序语句段特定规则:函数m文件第一行必须以单词function作为引导词,必须遵循如下形式: function =() m文件的文件

75、名必须是 .m。程序中的变量均为局部变量,不保存在工作空间中。 其变量只在函数运行期间有效。(4). 函数句柄 函数句柄是matlab6以上特有的语言结构,其优点:方便地实现函数间互相调用兼容函数加载的所有方式拓宽子函数包括局部函数的使用范围提高函数调用的可靠性减少程序设计中的冗余提高重复执行的效率数组、结构数组、细胞型数组结合定义数据函数句柄的创建和显示 定义函数句柄的定义只需在提示符后添加相应函数的函数名 f_h=plot得:f_h = plot 函数句柄的内容通过functions显示 functions(f_h)得:ans = function: plot type: overload

76、ed file: MATLAB built-in function matlab的函数类型 simple 未加载的内部函数、m文件 overloaded 加载的内部函数、m文件 subfunction 子函数 constructor matlab类的创建函数 private 局部函数函数句柄的调用和操作可通过函数feval进行函数句柄的调用 feval(函数句柄): f_h1=peaks feval(f_h1)%得peaks函数,并作图 feval(函数句柄,参数列表): f_h=plot feval(f_h,0:10,0:10)%作二维图形得:f_h1 = peaksz = 3*(1-x).

77、2.*exp(-(x.2) - (y+1).2) . - 10*(x/5 - x.3 - y.5).*exp(-x.2-y.2) . - 1/3*exp(-(x+1).2 - y.2) 函数句柄与函数名字符串转换 func2str 函数名字符串转换函数句柄 funh=str2func(det) funh = det str2func 函数句柄转换函数名字符串 func2str(funh) ans = det四、matlab的程序结构 matlab语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。(1).顺序结构 依次顺序执行程序的各条语句(2).循环结构 被重复执行的一组

78、语句,循环是计算机解决问题的主要手段。 循环语句主要有: for end语法为: for i = 表达式 (表达式为一个向量) 可执行语句 end例:利用for循环求1!+2!+3!+ +5!的值 sum=0; for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr; endsum = 153例:小猴吃桃问题。设第k天的桃子数为 ,则桃子数的变化规律为:给定k, ,可算出第一天的桃子数。p(10)=1;for k=10:-1:2;p(k-1)=2*(p(k)+1);endp(1)ans =1534例:小猴吃桃问题。设第k天的桃子数为 ,则桃子

79、数的变化规律为:给定k, ,可算出第一天的桃子数。p(10)=1;for k=10:-1:2;p(k-1)=2*(p(k)+1);endp(1)ans =1534 while end 循环 while循环将循环体中的语句循环执行不定次数。 语法为:while 表达式 循环体语句 end 表达式一般是由逻辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值 非0,继续循环;直到表达式值为0,循环停止。例:用while循环求1100间整数的和 sum=0; i=1; while i=100 sum=sum+i; i=i+1; end sum sum = 5050 例;求阶乘n

80、=10;s=1;i=1;while(i, ,=, = =, = 等 逻辑操作符 &,| , 等 逻辑函数:isequal 若是相等则为真 isempty 若是空矩阵则为真 isstr 若是字符串则为真五、matlab程序流的控制 matlab的控制语句同c语言有相似之处, 但没有c 语言复杂、灵活和多变。因而语法比较简单,容易掌握。echo 指令 用来控制m文件在执行过程中是否 显示 echo on 打开所有命令文件的显示方式 echo off 关闭所有命令文件的显示方式 echo 在以上两者间切换 echo对于命令文件和函数文件有所不同,命令文件用法简单,函数对所有命令起作用;函数文件用法较

81、复杂,具体请help查询。 echo file on 打开file函数文件的显示方式 echo file off 关闭file函数文件的显示方式 echo file 切换file函数文件的显示方式 echo on all 打开所有函数文件的显示方式 echo off all 关闭所有函数文件的显示方式input 提示用户从键盘输入数值、字符串、表达式。 例:n=input(How many apples= )How many apples= 5n = 5pause 暂停,等待用户响应 可令m文件执行暂停,并在继续执行前按任一个键 。keyboard 与input类似,功能更强 keyboard

82、 调用键盘与调用m文件一样,当keyboard在m文件中出现时,它停止文件的执行,并在命令窗口出现K,把程序的执行和输入权交给用户(键盘),用于修改程序。如要继续运行,只需在命令窗口中输入return即可。break 中断 break 中断for, while循环语句的执行,在嵌套循环结构中, break从最里层循环推出。menu 产生一个用户可选择输入的菜单 格式:k=menu( 标题,菜单1,菜单2 )K = menu(Choose a color,Red,Blue,Green)Ctrl C-强行停止程序执行的命令。在发现程序运行有错或运行时间太长时,可用此方法中途终止。uicontrol

83、图形界面控制调用格式: h=uicontrol(property,value)property/value确定控制类型。h = uicontrol(Style, pushbutton, String, Clear,. Position, 20 150 100 70, Callback, cla);uimenu创建用户界面菜单调用格式: h=uimenu(property,value)property/value 确定菜单形式。 f = uimenu(Label,Workspace); uimenu(f,Label,New Figure,Callback,figure); uimenu(f,La

84、bel,Save,Callback,save); uimenu(f,Label,Quit,Callback,exit,. Separator,on,Accelerator,Q);六、内联函数和匿名函数内联函数-inline 函数,可以免去M文件。用于较简单的函数。fun=inline(函数内容,自变量列表)例: fun=inline(x3+x*y2,x,y)fun = Inline function: fun(x,y) = x3+x*y2匿名函数的格式:fun=(自变量列表)函数内容。例: fun=(x,y)x.3+x*y.2fun = (x,y)x.3+x*y.2 fun=(x,y)x.3+

85、x*y.2fun = (x,y)x.3+x*y.2 fun=(x,y,a,b)a*x.3+b*x*y.2fun = (x,y,a,b)a*x.3+b*x*y.2第三章第三章 MATLAB的开发环境和工具的开发环境和工具一、MATLAB与其他软件的接口关系1、变量的存储和下载:见P:53通用命令函数库2、工作日志的记录:P533、日期和时间:P:54表二、与文字处理系统WINWORD的关系1、利用剪贴板进行交互 通常选Metafile(矢量模式),建议在MATLAB中先把图形比例取到大体合适,避免到WORD中做大幅度的缩放调整。2、M文件编辑器三、图形文件的保存可选择多种保存。四、低层输入/输出

86、函数库1.打开和关闭文件(fopen, fclose)2. 格式:fid=fopen(数据文件,r)3. r 读4. w 写5. a 附加6. rt 读写文件一旦打开,即可进行读写操作。 sta=fclose(fid) 关闭上述打开文件 sta=fclose(all) 关闭所有打开的文件与save,load类似,是matlab专用数据文件读写工具(*.mat)。2. 读写二进制数据文件 fread, fwrite 可读写数据文件,文本文件。例:fid=fopen(user.dat,r) a=fread(fid,50) sta=fclose(fid)五、应用程序接口 应用程序接口是matlaab的附加组件。是一个由相关函数组成的接口函数库,可实现与外部程序的交互。MEX文件:是matlab环境下调用C、FORTRAN 语言编写的应用程序模块。matlab 计算引擎:在使用C、FORTRAN编程时 可调用matlab函数库进行计算。MAT文件:实现matlab与C、FORTRAN语言程序间的数据交换 第四章第四章 MATLAB的其他函数库的其他函数库4-1数据分析和傅里叶变换函数库4-2矩阵的分解与变换函数库4-3多项式函数库4-4函数功能和数值分析函数库4-5字符串函数库4-6符号数学函数库4-7系统仿真函数库这一章属函数库,请同学自己学习,以后用到时返回来看就可以。

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

最新文档


当前位置:首页 > 办公文档 > 工作计划

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