ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:131.10KB ,
资源ID:5444287      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5444287.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB的使用.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB的使用.docx

1、MATLAB的使用第一讲 MATLAB的使用MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题。MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。其中,矩阵是MATLAB的核心!下面将从基本规则和操作,编程和作图以及文件的操作等等多个方面,来讲解数学建模中MATLAB的一些常用方法。一、 变量与函数变量、函数与编程所形成的m文件是MATLAB操作的基本,在介绍它们的具体使用方法之前,先给出一些必须了解的基本规则。1、 变量MATLAB和其他编程工具一样,变量是

2、必须的基本元素,它也是以字母开头,后接字母、数字或下划线的字符序列,用法也基本一样。其具体的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号。特殊变量表注意,自定义的变量不能和表中变量名相同。2、数学运算符号及标点符号(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果;(2)“%”后面所有文字为注释;(3)“.”表示续行。3、数学函数基本上,常用的数学函数在MATLAB中都有相应的命令,部分如下:4

3、、M文件MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件. 函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为: function 因变量名=函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因变量。M文件建立方法:1. 在Matlab中,点:File-New-M-file 2. 在编辑窗口中输入程序内容 3. 点:File-Save,存盘,M文件名必须与函数名一致。Matlab的应用程序也以M文件保存。例:定义函数 f(x1,x2)=100(x2-x1)+(1-x1) 1.

4、建立M文件:fun.mfunction f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)22. 可以直接使用函数fun.m例如:计算 f(1,2), 只需在Matlab命令窗口键入命令:x=1 2fun(x)二、数组与矩阵矩阵是MATLAB最基本的数据对象,MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的。在MATLAB中,不需对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的内容自动进行配置。1、数 组 数组可以看作是只有一行或一列的简单矩阵,但作为常用的计算单元,matlab也专门为其设计了一系列命令。(1)创建简单的数组x=a b c d e f

5、创建包含指定元素的行向量x=first:last 创建从first开始,加1计数,到last结束的行向量x=first:increment:last 创建从first开始,加increment计数,last结束的行向量x=linspace(first,last,n) 创建从first开始,到last结束,有n个元素的行向量x=logspace(first,last,n) 创建从开始,到结束,有n个元素的对数分隔行向量。(2)数组元素的访问(i)访问一个元素:x(i)表示访问数组x的第i个元素;(ii)访问一块元素:x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但

6、不超过c),b可以为负数,b缺损时为1;(iii)直接使用元素编址序号:x(a b c d) 表示提取数组x的第a、b、c、d个元素构成一个新的数组 x(a) x(b) x(c) x(d)。(3)数组的方向 前面例子中的数组都是一行数列,是行方向分布的,称之为行向量。数组也可以是列向量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示。产生列向量有两种方法: 直接产生 例 c=1;2;3;4 转置产生 例 b=1 2 3 4; c=b 说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素。(4)数组的运算(i)标量-数组运算 数组对标量的加、减

7、、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算。设:a=a1,a2,an, c=标量则:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c a./c= a1/c,a2/c,an/c(右除) a.c= c/a1,c/a2,c/an (左除) a.c= a1c,a2c,anc c.a= ca1,ca2,can (ii)数组-数组运算 当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的。设:a=a1,a2,an, b=b1,b2,bn则:a+b= a1+b1,a2+b2,an+bn a.*b

8、= a1*b1,a2*b2,an*bn a./b= a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbn2、矩阵 通过下面的介绍,大家可以发现矩阵的相关命令和数组基本类似。(1)矩阵的建立逗号或空格用于分隔某一行的元素,分号用于区分不同的行。除了分号,在输入矩阵时,按Enter键也表示开始一新行。输入矩阵时,严格要求所有行有相同的列。例 m=1 2 3 4 ;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 3特殊矩阵的建立:a= 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为

9、零;b=zeros(m,n) 产生一个m行、n列的零矩阵c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵d=eye(m,n) 产生一个m行、n列的单位矩阵(2)矩阵中元素的操作(a)矩阵A的第r行:A(r,:)(b)矩阵A的第r列:A(:,r)(c)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:)(d)取矩阵A的第i1i2行、第j1j2列构成新矩阵:A(i1:i2, j1:j2)(e)以逆序提取矩阵A的第i1i2行,构成新矩阵:A(i2:-1:i1,:)(f)以逆序提取矩阵A的第j1j2列,构成新矩阵:A(:, j2:-1:j1 )(g)删除A的第i1i2行,构成新矩阵:A(

10、i1:i2,:)= (h)删除A的第j1j2列,构成新矩阵:A(:,j1:j2)= (i)将矩阵A和B拼接成新矩阵:A B;A;B(3)矩阵的运算(i)标量-矩阵运算:同标量-数组运算;(ii)矩阵-矩阵运算: 1 元素对元素的运算,同数组-数组运算;2 矩阵运算:矩阵加法:A+B矩阵乘法:A*B方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:V,D=eigA。三、 MATLAB编程Matlab虽然提供了大量现成的函数供我们计算时使用,但当要真正解决一些实际问题时,这还远远不够,编程仍然是不可或缺的一步。Matlab也可以象C,FORTRAN等高级计算机语言一样,进行程

11、序设计。下面简单介绍Matlab中一些重要的编程手段。1、关系与逻辑运算除了传统的数学运算,Matlab支持关系和逻辑运算。一个重要的应用是控制基于真/假命题的一系列Matlab命令的流程,或执行次序。(1)关系操作符 Matlab关系操作符包括所有常用的比较。能用来比较两个同样大小的矩阵,或用来比较一个矩阵和一个标量(矩阵中每一个元素都与标量相比,结果与矩阵大小一样)。(2)逻辑运算符 逻辑操作符提供了一中组合或否定关系表达式,具体如下:(3)控制流MATLAB提供三种决策或控制流结构:for循环、while循环、if-else-end结构。 这些结构经常包含大量的MATLAB命令,故经常出

12、现在MATLAB程序中,而不是直接加在MATLAB提示符下。i、for循环:允许一组命令以固定的和预定的次数重复 for x=array commands end 在for和end语句之间的命令串commands按数组(array)中的每一列执行一次。在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)。ii、While循环 与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值。while expression commands end 只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串comm

13、ands。iii、If-Else-End结构(a)有一个选择的一般形式是: if expression commands end 如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串commands。先建立M文件fun1.m定义函数f(x),再在Matlab命令窗口输入fun1(2),fun1(-1)即可。(b) 有三个或更多的选择的一般形式是: if (expression1) commands1 else if (expression2) commands2 else if (expression3) commands3 else if elsecomm

14、ands endendend end先建立M文件fun2.m定义函数f(x),再在Matlab命令窗口输入fun2(2),fun2(0.5), fun2(-1)即可。四、MATLAB作图强大的图形功能是Matlab的优点之一,它能方便快速的出图,给我们的工作带来了巨大的便利。1. 曲线图Matlab作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给Matlab函数画图。命令为:PLOT(X,Y,S)其中,X,Y是向量,分别表示点集的横坐标和纵坐标,S指定曲线的颜色、线形等:y:黄色 c:蓝绿色 r:红色 m:洋

15、红.:点 -:连线 o:圈 ::短虚线x:x-符号 -.:长短线 +:加号 -:长虚线PLOT(X,Y)画实线PLOT(X,Y1,S1,X,Y2,S2,X,Yn,Sn)将多条线画在一起例 在0,2*pi用红线画sin(x),用绿圈画cos(x)。解:x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,r,x,z,g0)2.符号函数(显函数、隐函数和参数方程)画图(1) ezplotezplot(f(x),a,b) 表示在axb绘制显函数f=f(x)的函数图ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在区间xminxxm

16、ax和 yminyymax绘制隐函数f(x,y)=0的函数图ezplot(x(t),y(t),tmin,tmax) 表示在区间tminttmax绘制参数方程x=x(t),y=y(t)的函数图例 在0,pi上画y=cos(x)的图形;解:输入命令 ezplot(sin(x),0,pi)例 在0,2*pi上画,星形图;解:输入命令 ezplot(cos(t)3,sin(t)3,0.2*pi)例 在-2,0.5,0,2上画隐函数的图。解:输入命令ezplot(exp(x)+sin(x*y),-2,0.5,0,2)(2) fplotfplot(fun,lims) 表示绘制字符串fun指定的函数在lim

17、s=xmin,xmax的图形注意:1 fun必须是M文件的函数名或是独立变量为x的字符串;2 fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形。例 在-1,2上画的 图形解:先建M文件myfun1.m function Y=myfun1(x) Y=exp(2*x)+sin(3*x.2)再输入命令:fplot(myfun1,-1,2) 例 在-2,2范围内绘制函数tanh的图形解:fplot(tanh,-2,2)例 x、y的取值范围都在-,画函数tanh(x),sin(x),cos(x)的图形解:输入命令 fplot(tanh(x),sin(x),cos(x),2*pi*-1

18、 1 1 1)3、空间曲线(1)一条曲线:PLOT3(x,y,z,s)其中,X,Y,Z是n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值S则指定颜色、线形等例 在区间0,10*pi画出参数曲线x=sin(t),y=cos(t),z=t解:t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋转(2)多条曲线:PLOT3(x,y,z)其中x,y,z是都是m*n矩阵,其对应的每一列表示一条曲线.例 画多条曲线观察函数Z=(X+Y).2. 解:x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; p

19、lot3(X,Y,Z)(这里meshgrid(x,y)的作用是产生一个以向量x为行、向量y为列的矩阵)4、空间曲面(1)surf(x,y,z) 画出数据点(x,y,z)表示的曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值例 画函数Z=(X+Y).2的图形. 解:x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; surf(X,Y,Z) shading flat %将当前图形变得平滑(2)Mesh(x,y,z) 画网格曲面例 画出曲面Z=(X+Y).2在不同视角的网格图. 解:x=-3:0.1:3; y=1:0.1:5; X,Y=mes

20、hgrid(x,y); Z=(X+Y).2; mesh(X,Y,Z) (3)meshz(X,Y,Z) 在网格周围画一个curtain图(如,参考平面)例 绘peaks的网格图解:输入命令: X,Y=meshgrid(-3:.125:3); Z=praks(X,Y); Meshz(X,Y,Z)5、特殊二、三维图形二维:1、极坐标图:polar (theta,rho,s)用角度theta(弧度表示)和极半径rho作极坐标图,用s指定线型。2、散点图:scatter(X,Y,S,C) 在向量X和Y的指定位置显示彩色圈X和Y必须大小相同3、平面等值线图:contour (x,y,z,n) 绘制n个等值

21、线的二维等值线图三维:1、空间等值线图:contour 3(x,y,z,n) 其中n表示等值线数。2、三维散点图:scatter3(X,Y,Z,S,C) 在向量X,Y和Z指定的位置上显示彩色圆圈; 向量X,Y和Z的大小必须相同。五、文件操作Matlab提供了对数据文件建立、打开、读、写以及关闭等一系列函数,数据文件一般存放在磁盘等介质上,用文件名标识,系统对文件名没有特殊要求。文件数据格式有二种形式,一是二进制格式文件,二是ASCII文本文件,系统对这两类文件提供了不同的读写功能函数。1、文件的打开与关闭(1)fopen打开文件在读写文件之前,必须先用fopen命令打开一个文件,并指定允许对该

22、文件进行的操作。文件操作结束后,应及时关闭文件,以免数据的丢失或误修改。fopen函数格式为: Fid= fopen(filename,permission)其中filename为文件名,permission为文件格式,可以是下列格式之一: r 打开文件,读数据,文件必须存在。 w 打开文件,写数据,若文件不存在,系统会自动建立。 a 打开文件,在文件末尾添加数据。 r+ 打开文件,可以读和写数据,文件必须存在。 w+ 打开文件,供读与写数据用。 a+ 打开文件,供读与添加数据用。 W 打开文件供写数据用,无自动刷新功能。 A 打开文件供添加数据用,无自动刷新功能。例如:打开一个名为std.d

23、at的数据文件并进行读操作,其命令格式为:Fid=fopen( std.dat, r )上述打开格式均为二进制格式,如果想用ASCII文本格式,则必须在格式字符串中加上字符t,例如用r t表示以ASCII格式打开供读操作的数据文件。(2)fclose关闭文件文件在进行完读、写等操作后,应及时关闭,以保证文件的安全可靠。关闭文件命令格式为:Sta=fclose(Fid) 关闭Fid所表示的文件Sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回1。2、文件的读写操作(1)二进制数据文件fread 读二进制数据文件。格式为:A,COUNT=fread(Fid,size,precision

24、)其中A为数据矩阵,COUNT返回所读取的数据元素个数。size为可选项,若不选用则读取整个文件内容,若选用它的值可以是下列值:N 读取 N个元素到一个列向量。inf 读取整个文件。M,N 读数据到MN的矩阵中,数据按列存放。precision用于控制所读数据的精度格式。缺省格式为uchar,即无符号字符格式。例如:Fid=fopen(std.dat, r); A=fread(Fid, 100, long); Sta=fclose(fid);以读数据方式打开数据文件std.dat,并按长整型数据格式读取文件的前100个数据放入向量A,然后关闭文件。fwrite 函数以二进制格式向数据文件写数据

25、,其格式为:COUNT=fwrite (Fid, A, precision)例如:Fid=fopen(magic5.bin, wb);fwrite(Fid, magic, int32);上述语句将矩阵magic中的数据写入文件magic5.bin中,数据格式为32位整型二进制格式。例 建立一数据文件test.dat,用于存放矩阵A的数据。已知 A=-0.6515 -0.2727 -0.4354 -0.3190 -0.9047 -0.7534 -0.4567 -0.3212 -0.4132 -0.3583 -0.9264 -0.8173 -0.7823 -0.3265 -0.0631 -0.17

26、35 -0.7373 -0.0972 -0.3267 -0.6298 -0.4768 -0.6773 -0.6574 -0.1923 -0.4389Fid=fopen(test.dat, w)cnt=fwrite(Fid, A, float)fclose(Fid)程序段将矩阵A的数据以二进制浮点数格式写入文件test.dat中。Fid=fopen(test.dat, r)B,cnt=fread(Fid, 5,inf, float)fclose(Fid)读取文件test.dat的内容。(2)文本文件fscanf 读ASCII文本文件:A,COUNT= fscanf (Fid, format, s

27、ize)其中A为数据矩阵,用以存放读取的数据,COUNT返回所读取的数据元素个数。format用以控制读取的数据格式,由%加上格式符组成,格式符为:d, i, o, u, x, e, f, g, s, c与. . . 例如:s=fscanf(fid, %s) 读取一个字符串a=fscanf(fid, %5d) 读取5位数的整数b= fscanf(fid, %6.2d) 读取浮点数fprintf 写ASCII数据文件,其格式为: COUNT= fprintf(Fid, format, A,)其中A为要写入文件的数据矩阵,先按format格式化数据矩阵A,后写入到Fid所指定的文件。例如:x =

28、0: 0.1: 1; y = x; exp(x); Fid = fopen(exp.txt, w); fprintf(Fid,%6.2f %12.8fn,y); fclose(Fid);六、数据处理与多项式计算求一组数据的最值,中值,累加和等等简单的数据处理和多项式求根等相关运算是我们最常遇见的一类问题,下面介绍如何使用MATLAB来解决这些问题。1、最大值和最小值MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。(1)求向量的最大值和最小值求一个向量X的最大值的函数有两种调用格式,分别是:(1) y=max(X):返回向量X的最大值存入

29、y,如果X中包含复数元素,则按模取最大值。(2) y,I=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。求向量X的最小值的函数是min(X),用法和max(X)完全相同。例 求向量x的最大值。命令如下:x=-43,72,9,16,23,47;y=max(x) %求向量x中的最大值y,l=max(x) %求向量x中的最大值及其该元素的位置(2)求矩阵的最大值和最小值求矩阵A的最大值的函数有3种调用格式,分别是:(1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。(2) Y,U=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。(3) max(A,dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。求最小值的函数是min,其用法和max完全相同。(3)两个向量或矩阵对应元素的比较函数max和min还能对两个同型

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1