matlab基础内容掌握范文.docx

上传人:b****1 文档编号:12518359 上传时间:2023-04-19 格式:DOCX 页数:44 大小:182.12KB
下载 相关 举报
matlab基础内容掌握范文.docx_第1页
第1页 / 共44页
matlab基础内容掌握范文.docx_第2页
第2页 / 共44页
matlab基础内容掌握范文.docx_第3页
第3页 / 共44页
matlab基础内容掌握范文.docx_第4页
第4页 / 共44页
matlab基础内容掌握范文.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

matlab基础内容掌握范文.docx

《matlab基础内容掌握范文.docx》由会员分享,可在线阅读,更多相关《matlab基础内容掌握范文.docx(44页珍藏版)》请在冰豆网上搜索。

matlab基础内容掌握范文.docx

matlab基础内容掌握范文

第二章MATLAB软件使用入门

MATLAB是MATrixLABoratory(矩阵实验室)的缩写,是由美国MathWorks公司于20世纪80年代初推出的一套以矩阵计算为基础的、适合多学科、多种工作平台的功能强劲的大型软件.MATLAB将数值计算、可视化和编程功能集成在非常便于使用的环境中,具有编程效率高、用户使用方便、扩充能力强、移植性好等特点.经过MathWorks公司的不断完善,目前MATLAB已经发展成为国际上最优秀的高性能科学与工程计算软件之一.

§2.1MATLAB简介

一、MATLAB的工作环境

假定在您的计算机里已经安装了MATLAB7.0,在Windows桌面上就会出现MATLAB7.0的图标.双击此图标,进入MATLAB的工作界面.MATLAB7.0的工作界面主要由菜单、工具栏、命令窗口、工作空间管理窗口、命令历史窗口和当前目录窗口组成.

1、菜单和工具栏

MATLAB的菜单和工具栏界面与Windows程序的界面类似,只要稍加实践就可以掌握其功能和使用方法.

2、命令窗口(CommandWindow)

MATLAB命令窗口是用来接受MATLAB命令的窗口.在命令窗口中直接输入命令,可以实现显示、清除、储存、调出、管理、计算和绘图等功能.MATLAB命令窗口中的符号“>>”为运算提示符,表示MATLAB处于准备状态.当在提示符后输入一段程序或一段运算式后按回车键,MATLAB会给出计算结果并将其保存在工作空间管理窗口中,然后再次进入准备状态.

在命令窗口中实现管理功能的常用命令有:

>>cd

显示当前工作目录;

>>dir

显示当前工作目录或指定目录下的文件;

>>clc

清除命令窗口中的所有内容;

>>clf

清除图形窗口;

>>quit(exit)

退出MATLAB;

>>typetest

在命令窗口中显示文件test.m的内容

>>deletetest

删除文件test.m;

>>whichtest

显示test.m的目录;

>>what

显示当前目录或指定目录下的M、MAT、MEX文件.

为了便于对输入的内容进行编辑,MATLAB提供了一些控制光标位置和进行简单编辑的一些常用编辑键,掌握这些命令可以在输入命令的过程中起到事半功倍的效果.

调用上一行;

调用下一行;

光标左移一个字符;

光标右移一个字符;

home

光标置于当前行首;

end

光标置于当前行尾;

del

删除光标处的字符;

backspace

删除光标前的字符.

在以上按键中,反复使用“↑”,可以调出以前键入的所有命令,进行修改、计算.

3、工作空间管理窗口(Workspace)

工作空间管理窗口显示当前MATLAB的内存中使用的所有变量的变量名、变量的大小和变量的数据结构等信息,数据结构不同的变量对应着不同的图标.

在命令窗口中,实现变量的显示、清除、储存和调出的命令如下:

>>who

显示当前工作空间中的所有变量名;

>>whos

显示当前工作空间中的所有变量的变量名、变量的大小和数据类型;

>>whosx

显示工作空间中的变量x的大小、数据类型;

>>disp(x)

显示变量x的内容;

>>clear

清除工作空间中的所有变量;

>>clearx

清除工作空间中的变量x

>>save文件名

把工作空间中的变量保存在当前MATLAB目录下产生的一个扩展名为mat的文件中;

>>load文件名

把该mat文件中的变量调入到MATLAB的内存中.

4、命令历史窗口(CommandHistory)

命令历史窗口显示所有执行过的命令.在默认设置下,该窗口会保留自MATLAB安装后使用过所有命令,并表明使用的时间.利用该窗口,一方面可以查看曾经执行过的命令;另一方面,可以重复利用原来输入的命令,这只需在命令历史窗口中直接双击某个命令,就可以执行该命令.

5、当前目录窗口(CurrentDirectory)

当前目录窗口显示当前目录下所有文件的文件名、文件类型和最后修改时间.

二、搜索路径与扩展

当MATLAB调用函数或执行程序文件时,对函数或程序文件的搜索,都是在其搜索路径下进行的.如果用户调用的函数在搜索路径之外,MATLAB会认为此函数并不存在.一般情况下,MATLAB系统的函数(包括工具箱函数)都在系统默认的搜索路径之中,但是用户编写的函数可能没有保存在搜索路径中.要解决这个问题,只需将函数或程序所在的目录扩展成MATLAB的搜索路径即可.

在MATLAB命令窗口中输入editpath命令或pathtool命令或通过MATLAB窗口中“File→SetPath”菜单,都可以进入“设置搜索路径”对话框,通过该对话框可以为MATLAB添加或删除搜索路径.

三、MATLAB的帮助系统

MATLAB为用户提供了非常完善的帮助系统,例如在线帮助、帮助窗口以及MATLAB演示等.通过使用帮助菜单或在命令窗口中输入帮助命令,可以很容易地获得MATLAB的帮助信息,进一步学习MATLAB.

1、命令窗口查询帮助系统

在命令窗口查询帮助系统最常用的命令是help.通过help命令,可以在命令窗口获得在线帮助.调用格式如下:

help在命令窗口列出所有主要的基本帮助主题

help/在命令窗口列出所有的运算符和特殊字符

help(函数名)在命令窗口列出该函数的M文件的描述及用法,这是MATLAB中最常用的获取帮助信息的方式,例如

>>helpsqrt

SQRTSquareroot.

SQRT(X)isthesquarerootoftheelementsofX.ComplexresultsareproducedifXisnotpositive.

Seealsosqrtm.

Overloadedfunctionsormethods(oneswiththesamenameinotherdirectories)

helpsym/sqrt.m

ReferencepageinHelpbrowser

docsqrt

2、联机帮助系统

直接单击MATLAB主窗口的“?

”按钮或选定Help菜单的前4项中的任意一项或在命令窗口中执行helpwin、helpdesk或doc命令都可以运行帮助窗口,进入MATLAB的联机帮助系统.

帮助向导页面包含4个页面,分别是帮助主题(Contents)、帮助索引(Index)、查询帮助(Search)以及演示帮助(Demos).如果知道需要查询的内容的关键字,一般可以选择Index或Search模式来查询;只知道需要查询的内容所属的主题或是只是想进一步了解和学习某一主题,一般可以选择Contents或Demos模式来查询.

3、联机演示系统

选择MATLAB主窗口菜单的“Help→Demos”选项或在命令窗口输入demos或直接在帮助页面上选择Demos选项都可以进入联机演示系统.通过联机演示系统,用户可以直观、快速地学习MATLAB某个工具箱的使用方法,它是有关的参考书籍不能替代的.

§2.2变量与函数

一、变量

变量是任何程序设计语言的基本要素之一,MATLAB语言当然也不例外.与一般常规的程序设计语言不同的是,MATLAB语言并不要求对所使用的变量进行事先声明,也不需要指定变量类型,它会自动根据赋予变量的值或对变量进行的操作来确定变量的类型并为其分配内存空间.在赋值过程中,如果变量已存在,MATLAB将使用新值代替旧值,并以新的变量类型代替旧的变量类型.

MATLAB中变量的命名规则是:

1、变量名区分大小写;

2、变量名的长度不超过31位,第31个字符之后的字符将被忽略;

3、变量名必须以字母开头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.

MATLAB中有一些预定义的变量,这些特殊的变量称为常量.

MATLAB语言中的常量

常量名

常量值

常量名

常量值

i,j

虚数单位

realmin

最小可用正实数

pi

圆周率

realmax

最大可用正实数

eps

计算机的最小浮点数

inf

正无穷大,如1/0

NaN

Not-a-Number,非数,特指0/0

flops

浮点运算数

在MATLAB语言中,定义变量时应避免与常量名相同,以免改变常量的值.

与其他程序设计语言相同,MATLAB语言中也存在变量作用域的问题.在未特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其调用的函数内有效.若要定义全局变量,应对变量进行声明,即在该变量前加关键字global.

二、数学运算符号及标点符号

数学运算符号:

+加法运算;-减法运算;*乘法运算;.*点乘运算;/右除运算;\左除运算;./点右除运算;.\点左除运算;^乘幂运算.

MATLAB中标点符号的含义是:

1、在命令窗口中输入一个MATLAB语句(语句的一般形式为:

变量=表达式),如果语句后为逗号或无标点符号,则在命令窗口中显示该语句的计算结果;如果语句后为分号,MATLAB只进行计算,不在命令窗口中显示计算结果.如果要查看计算结果,只需要在命令窗口中输入变量名按回车键或打开工作空间双击选中的变量即可.

2、在MATLAB的命令窗口中输入一个表达式或利用MATLAB进行编程时,如果表达式太长,可以用续行符号“…”将其延续到下一行.

3、编写MATLAB程序时,通常利用符号“%”对程序或其中的语句进行注释.

三、函数

MATLAB语言中最基本最重要的成分是函数.一个函数由函数名、输入变量和输出变量组成.同一个函数,不同数目的输入变量和不同数目的输出变量,均代表不同的含义.这不仅丰富了MATLAB的函数功能,而且大大减少了需要的磁盘空间,使得MATLAB编写的程序简单而且高效.

MATLAB的函数,按照用途,可以分为三类:

标量函数、向量函数和矩阵函数.

1、标量函数:

标量函数作用于标量,一般用于简单的数值计算.常用的标量函数有三角函数、指数对数函数、复数函数、截断函数和求余函数等.

三角函数:

sin、cos、tan、cot、sec、csc、asin、acos、atan、acot、asec、acsc、sinh、cosh、tanh、asinh、acosh、atanh;

指数和对数函数:

exp(以e为底的指数函数)、pow2(以2为底的指数函数)、sqrt(正的平方根函数)、realsqrt(正的平方根函数,若输入不是正数则报错)、nthroot(n次方根函数)、log(自然对数函数)、reallog(自然对数函数,若输入不是正数则报错)、log10(以10为底的对数函数)、log2(以2为底的对数函数);

复数函数:

abs(绝对值或复数模)、angle(复数的相角或幅角)、conj(复数共轭)、real(复数实部)、imag(复数虚部)、complex(用实部和虚部构造复数)、isreal(判断是否为实数矩阵).例如:

c=complex(a,b)将根据的a、b构造复数c,复数c的实部为a,复数c的虚部为b.

>>a=[12;34];b=[56;78]

>>c=complex(a,b)

截断和求余函数:

mod(除法求余数,与除数同号)、rem(除法求余数,与被除数同号)、sign(符号函数)、fix(朝零方向取整函数)、floor(向负无穷方向取整函数)、ceil(向正无穷方向取整函数)、round(四舍五入函数)、rats(有理逼近函数).

当一个标量函数作用于向量或矩阵时,是这个标量函数作用于这个向量或矩阵的每一个元素.这个功能将大大方便我们处理成批的数据.

2、向量函数:

MATLAB中有些函数只有当它们作用于行向量或列向量时才有意义,称为向量函数.常用的向量函数:

max(最大值)、min(最小值)、sum(和)、length(长度)、mean(平均值)、median(中数)、prod(乘积)、sort(从小到大排列).例如:

>>x=[0.6833,0.2126,0.8392,0.6288,0.1338,0.2071,0.6072,0.6299,0.3705,0.5751];

>>a=max(x),b=min(x),c=mean(x),d=median(x)

当一个向量函数作用于一个矩阵时会产生一个行向量,这个行向量的每个元素是向量函数作用于矩阵相应列向量的结果.

在MATLAB的统计工具箱中,我们还会学习到许多向量函数.

3、矩阵函数:

MATLAB中有大量的矩阵函数,从其作用来看,可以分为构造矩阵的函数和进行矩阵计算的函数,详见下一节.

Prod函数:

对于向量返回的是向量内所有元素的乘积;对于矩阵,每列返回一个乘积值。

§2.3MATLAB的数值计算功能

强大的数值计算功能是MATLAB最具代表性的特点.也正是由于MATLAB具有强大的数值计算功能,MathWorks公司才有能力把MATLAB延伸到不同专业、不同行业和不同部门的各个领域,使其成为世界上最优秀的、应用最为广泛的、最受用户喜爱的数学软件.

一、数组及其运算

1、数组的建立

(1).直接输入数组

建立数组最直接的方法是在命令窗口中直接输入数组.数组元素需要用方括号“[]”括起来,元素之间可以用空格、逗号或分号分隔.需要注意的是,用空格和逗号分隔建立行数组,元素之间全部用分号分隔建立列数组.

(2).利用冒号表达式建立数组,此时不用方括号“[]”.

冒号表达式建立等差数组,它的基本形式为x=x1:

step:

x2,其中x1、step、x2分别为给定数值,x1表示数组的首元素数值,step表示步长,即从第二个元素开始,后一个元素与前一个元素之间的差值,x2表示数组尾元素数值限.注意:

x2并非尾元素数值,当x2-x1为step的整数倍时,x2才是尾元素数值.例如:

>>a=1:

2:

12和>>a=1:

2:

13

注:

(a).如果step=1,可以省略此项的输入,直接写成x=x1:

x2.

(b).如果x10;如果x1>x2,则需要step<0;如果x1=x2,则建立的数组只有一个元素.

(3).线性等分数组的建立

MATLAB提供了函数linspace用来建立线性等分数组,调用格式如下:

y=linspace(x1,x2)建立100维的等分数组,使得y

(1)=x1,y(100)=x2;

y=linspace(x1,x2,n)建立n维的等分数组,使得y

(1)=x1,y(n)=x2.例如:

>>y=linspace(1,100),y=linspace(1,100,6)

线性等分函数和冒号表达式都可以建立等分数组,前者是设定了数组的维数去建立等分数组,后者是通过设定步长建立维数随之确定的等分数组.

(4).对数等分数组的建立

MATLAB中提供了对数等分函数logspace生成等比数组,将此数组取以10为底的对数可生成等差数组.调用格式如下:

y=logspace(x1,x2)生成50维对数等分数组,使得y

(1)=10x1,y(50)=10x2;例如:

>>y=logspace(5,8);

y=logspace(x1,x2,n)生成n维对数等分行数组,使得y

(1)=10x1,y(n)=10x2.

另外,数组还可以从矩阵中抽取,还可以把数组看成1*n阶或n*1阶的矩阵,以矩阵形式生成.由于在MATLAB中矩阵比数组重要的多,此类函数将在矩阵及其运算中详细介绍.

2、数组元素的调用

(1).调用数组的一个元素:

数组的元素可以通过下标调用,如x(i)表示数组x的第i个元素.

(2).调用数组的部分元素:

x(a:

b:

c)表示调用数组x的从第a个元素开始,以步长为b到第c个元素,b可以为负数,b缺省时为1.

(3).直接使用元素序号调用数组元素:

x([abcd])表示调用数组x的第a、b、c、d个元素构成一个新数组[x(a)x(b)x(c)x(d)].

3、数组的运算

(1).数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量进行相应的加、减、乘、除、乘方运算.

设a=[a1a2…an],c=标量,则

a±c=[a1±ca2±c…an±c];

a*c=c*a=a.*c=[a1*ca2*c…an*c]

a/c=a./c=[a1/ca2/c…an/c]

a\c=a.\c=[a1\ca2\c…an\c]

a^c=a.^c=[a1^ca2^c…an^c]

c^a=c.^a=[c^a1c^a2…c^an]

(2).两个相同维数的数组进行加、减、乘、除、幂运算,可按元素对元素的方式进行,不同大小或维数的数组不能进行运算.

设a=[a1a2…an],b=[b1b2…bn],则

a±b=[a1±b1a2±b2…an±bn];

a.*b=[a1*b1a2*b2…an*bn]

a./b=[a1/b1a2/b2…an/bn]

a.\b=[a1\b1a2\b2…an\bn]

a.^b=[a1^b1a2^b2…an^bn]

(3).两个相同维数的数组的点积由dot函数实现,调用格式:

dot(a,b).

(4).两个三维数组之间的向量积由cross函数实现,调用格式:

cross(a,b).其中a,b必须是三个元素的向量。

二、矩阵及其运算

由于MATLAB的数值计算功能都是以(复)矩阵为基本单元进行的,因此,MATLAB中矩阵的运算可谓最全面、最强大.本小节将对矩阵及其运算进行详细的阐述.

1、矩阵的建立

(1).直接输入小矩阵

在键盘上直接输入矩阵是最方便、最常用和最好的建立数值矩阵的方法,尤其适合较小的简单矩阵.用此方法建立矩阵时,应当注意以下几点:

(a).输入矩阵以“[]”为其标识,即矩阵的元素应在“[]”的内部,此时MATLAB才将其识别为矩阵,如:

a=[123;111;4,5,6]

(b).矩阵的同行元素之间可由空格或逗号分隔,行与行之间用分号或回车符分隔;

(c).矩阵大小可不预先定义;

(d).若不想获得中间结果,在[]后可用分号结束;

(e).无任何元素的空矩阵也合法;

(f).矩阵元素可以为运算表达式,如b=[sin(pi/3),cos(pi/4);log(9),tanh(6)].

(2).当矩阵很大,不适合在命令窗口直接输入时,可以使用MATLAB提供的矩阵编辑器来完成矩阵的输入和修改.在使用矩阵编辑器时,必须首先在命令窗口中预先定义一个变量,这个变量可以是数或简单的矩阵.例如在命令窗口中输入A=1,打开工作空间窗口,选中变量A双击,就可以打开矩阵A的编辑器,通过添加或修改原来的元素,从而建立起我们需要的矩阵.

(3)、通过M文件建立大矩阵

当矩阵的规模比较大,直接输入法就显得笨拙,出现差错也不易修改.为了解决此问题,可以通过M文件输入矩阵.M文件是一种可以在MATLAB环境中运行的文本文件,分为命令文件和函数文件两种.这里是用命令M文件来建立大型矩阵.从菜单栏的File中选择New,再选择M-file命令,打开MATLABEditor窗口,按格式把所要输入的矩阵写入一文本文件中,并将此文件以m为扩展名,即为M文件.在MATLAB命令窗口中输入此M文件名,运行后则把M文件中的大型矩阵输入到MATLAB的内存中.

例如:

编制一名为example.m的M文件,内容如下:

A=[456468873257955;21,687,54488813;6546568898215]

在MATLAB命令窗口输入:

>>example%将矩阵A调入到MATLAB的内存中

说明:

M文件要保存在MATLAB的搜索路径上,才能在MATLAB的命令窗口中调用.

(4).利用矩阵函数建立矩阵

可以用MATLAB的函数来建立全零矩阵、全1矩阵、单位矩阵、均匀分布(标准正态分布)随机矩阵、对角矩阵和上、下三角矩阵等特殊矩阵.矩阵元素全是0或1的矩阵由zeros或ones来建立,单位矩阵由eye建立,均匀分布随机矩阵和标准正态分布随机矩阵分别由rand和randn来建立.

下面的函数fun表示zeros,ones,eye,rand,randn中的任意一个.

fun(N)建立相应的N*N阶矩阵;

fun(M,N)建立相应的M*N阶矩阵;

fun(size(A))建立与A同阶的相应矩阵.

MATLAB中的单位矩阵和数学中的单位矩阵的含义稍有不同,MATLAB中的单位矩阵可以为长方阵,在行标和列标相等的地方元素为1,其他元素为0.

利用函数diag建立对角矩阵:

diag(v,k)当v是一个包含n个元素的向量时,返回一个阶数为n+abs(k)的方阵,其第k阶对角线上为向量v中的元素,k=0表示主对角线,k>0表示在主对角线之上,k<0表示在主对角线之下,diag(v)=diag(v,0).例如:

>>v=[123];A=diag(v,2),B=diag(v,-2),C=diag(v)

在diag函数中,当v为矩阵时,返回一个列向量,该向量由矩阵的第k条对角线的元素构成.如:

>>A=magic(4);diag(A,1)

tril(A,k)抽取矩阵A的第k条对角线下面的部分(包第k条对角线);tril(A)抽取矩阵A的主下三角部分;triu(A,k)抽取矩阵A的第k条对角线上面的部分(包第k条对角线);triu(A)抽取矩阵A的主上三角部分;例如:

>>A=magic(5),B=tril(A,-1),C=triu(A),D=triu(A,1)

MATLAB提供了许多建立其它特殊矩阵的函数,如compan、hadamard、hilb、invhilb、

magic、pascal等等,感兴趣的读者可以参考有关MATLAB的书籍.

(5).通过矩阵的扩展建立新矩阵

(i).通过对分块矩阵进行赋值建立新的矩阵,A(m1:

m2,n1:

n2)=a,其中m2-m1+1必须等于a的行维数,n2-n1+1必须等于a的列维数.生成的m2*n2维的矩阵A,除赋值子阵和已存在的元素外,其余元素都默认为0.例如

>>a=hilb(3),n阶希尔伯特矩阵A(2:

4,5:

7)=a

(ii).通过小矩阵的组合建立大矩阵.例如:

>>v=[12620];a2=[-v(2:

4);eye

(2),zeros(2,1)];

(6).通过矩阵的合并建立新矩阵

(i).C=[AB]在水平方向合并矩阵,A,B必须具有相同的行数.C=[A;B]在竖直方向合并矩阵,A,B必须具有相同的列数.

(ii).分块对角矩阵的建立

out=blkdiag(a,b,c,d,…)根据输入的‘a’,‘b’,‘c’,‘d’等参数来构造一个分块对角矩阵.作为输入参数的矩阵不必是方阵,也不必具有相等的大小,例如:

>>a=1;b=[2,2;3,3];c=[44;55;66];d=8;

>>out=blkdiag(a,b,c,d)

(iii).通过复制矩阵来建立新的矩阵.

B=repmat(A,m,n)或B=repmat(A,[m,n])返回一个以矩阵A为元素的m*n矩阵B.例如:

>>A=[12;34];B=repmat(A,2,1),C=repm

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 育儿理论经验

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

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