Matlab基础知识点汇总.docx

上传人:b****5 文档编号:27902201 上传时间:2023-07-06 格式:DOCX 页数:179 大小:173.17KB
下载 相关 举报
Matlab基础知识点汇总.docx_第1页
第1页 / 共179页
Matlab基础知识点汇总.docx_第2页
第2页 / 共179页
Matlab基础知识点汇总.docx_第3页
第3页 / 共179页
Matlab基础知识点汇总.docx_第4页
第4页 / 共179页
Matlab基础知识点汇总.docx_第5页
第5页 / 共179页
点击查看更多>>
下载资源
资源描述

Matlab基础知识点汇总.docx

《Matlab基础知识点汇总.docx》由会员分享,可在线阅读,更多相关《Matlab基础知识点汇总.docx(179页珍藏版)》请在冰豆网上搜索。

Matlab基础知识点汇总.docx

Matlab基础知识点汇总

MATLAB讲义

第一章MATLAB系统概述

1.1MATLAB系统概述

MATLAB(MATrixLABoratory)矩阵实验室的缩写,全部用C语言编写。

特点:

(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。

(2)语句书写简单。

(3)语句功能强大。

(4)有丰富的图形功能。

如plot,plot3语句等。

(5)提供了许多面向应用问题求解的工具箱函数。

目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。

(6)易扩充。

1.2MATLAB系统组成

(1)MATLAB语言

MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。

同时MATLAB又具有面向对象编程特色。

MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。

(2)开发环境

MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。

(3)图形处理

图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。

还包括低级的图形命令,供用户自由制作、控制图形特性之用。

(4)数学函数库

有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。

MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。

(5)MATLAB应用程序接口(API)

MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。

1.3MATLAB的应用范围包括:

MATLAB的典型应用包括:

●数学计算

●算法开发

●建模、仿真和演算

●数据分析和可视化

●科学与工程绘图

●应用开发(包括建立图形用户界面)

以矩阵为基本对象

第二章Matlab基础

2.1MATLAB快速入门

(1)搜索路径

搜索路径也被看作是MATLAB的路径,其包含的文件被认为在路径上。

搜索路径设置存放在文件pathdef.m中,称为当前目录,当要在MATLAB中打开一个文件时,就以当前目录为开始点。

当输入一变量value时,MATLAB的搜索路径次序:

value是否为变量

value是否为内部函数

当前目录中是否存在value.m文件

搜索路径上是否存在value.m文件

path函数可以控制MATLAB的目录搜索路径,主要使用的格式:

path显示当前的搜索路径

p=path把当前的搜索路径存到字符变量P中

path('newpath')设置路径为'newpath'

path(path,'newpath')向当前路径添加一个新目录

addpath函数向MATLAB的搜索目录中添加一个新目录。

addpath路径名

path(path,’路径名’):

增加搜索路径

rmpath函数从MATLAB的搜索路径删除一个目录。

rmpath路径名:

删除路径

还可以利用菜单:

File->setpath(路径浏览器)

what:

显示出搜索路径上的文件名

what路径名:

路径名中的文件名

typevalue:

显示变量内容

edit文件名:

对m文件进行编辑

(2)工作空间(Workspace)

工作空间是一个重要而且比较抽象的概念,它是指运行MATLAB程序或命令所生成和存储在内存中的所有变量和MATLAB提供的常量构成的集合。

通过使用函数、运行M文件和装载保存的工作空间,可以向工作空间增加变量。

●save保存整个工作空间或一部分变量,使用方式:

saveworkspaceas文件名

save文件名[变量名]

●load恢复工作空间,使用方式:

loadworkspace

load文件名

●工作空间浏览器:

File->ShowWorkspace

●还有一组命令来管理这些变量。

who,whos:

显示出工作空间中的变量列表。

clear[变量名]:

清除变量

(3)MATLAB命令窗口

●输入命令和输出结果。

如输入:

help[函数名]

a=6

2.2矩阵、变量、运算和表达式

(1)矩阵的输入

A.直接输入:

注意:

(1)行元素间用空格或逗号(,)隔开;

(2)行与行之间用分号(;)或回车;

(3)整个元素列表用[]括起。

直接输入的矩阵为一全局变量,一直保存在内存中。

例:

a=[123;456]

a=

123

456

a=[1,2,3;4,5,6;7,8,9]a=[123;456;789]

矩阵元素:

可以灵活地描述矩阵元素,

●矩阵元素a[i,j]按列存放

通过下标单独对元素赋值

例:

a(1,1)=1,a(3,2)=a(1,1)得到

a=

1

a=

10

00

01

即自动形成一个3行2列矩阵,对未赋值的元素充值0。

●矩阵的元素可以用任意形式的表达式

例:

算术表达式

x=[-1,sqrt(5),(2+7)^4]

x=

1.0e+003*

-0.00100.00226.5610

●大矩阵可以用小矩阵作为元素

例:

a=[12;34]

b=[aa+5;a-5zeros(size(a))]

例:

A=[1,2,3;4,5,6]

A=

123

456

B=[A;7,8,9]

B=

123

456

789

●可以从矩阵中抽取某些元素构成新矩阵

C=A(1:

2,:

C=

123

456

例:

a=[3,4,5;6,7,8]

b=[+2,4*5,6]

c=[sin(0.5*pi),sqrt(4),0]

d=[a;b;c]

●复数的表示

MATLAB支持复数的运算,复数的虚部用i或j表示。

例:

a=1+2i或a=1+2j二者表示的结果一样。

复数可以直接运算,

例:

a=3+4i;

b=5+6j

a+b

输出:

ans=

8.0000+10.0000i

复数运算的一些常用函数:

①abs返回复数的模

②angle返回复数的相角

③conj返回共轭复数

④imag返回复数的实部

⑤real返回复数的虚部

B.用语句或函数产生:

a=randn(5,5)产生正态分布5*5的随机矩阵。

C.用M-文件或外部数据文件产生:

M-文件是一个以.m为后缀的文本文件,文件内容为一系列MATLAB命令,在MATLAB环境下键入该文件名(不包括后缀),文件中的全部命令会依次逐个执行;M-文件名(不包括后缀)相当于一个宏命令.

例如:

一个名为magik.m的文件包含了如下的内容,(假设magik.m在当前目录下)

A=[

16.03.02.013.0

5.010.011.08.0

9.06.07.012.0

4.015.014.01.0]

在Matlab环境下执行如下命令:

magik

A

A=

163213

510118

96712

415141

D.用矩阵编辑器创建和修改矩阵:

使用File->Showworkspace

(2)矩阵运算

运算符+,-,*,/(右除),\(左除)和^(幂)。

右除:

C=A/B即C满足CB=A,当B可逆时,A/B=AB-1

左除:

C=A\B即C满足AC=B,当A可逆时,A\B=A-1B

幂A^n=A*…*A;A必须是方阵。

例:

矩阵的加减法:

a=[1:

3;4:

6;7:

9]

b=a;c=a+b;c=a-b

注:

矩阵相加减必须有相同的维数。

例:

矩阵的点乘运算,^运算时矩阵必须为方阵,且只能与数字运算。

d=a*b必须符合m*n与n*l的结构。

d=a.*b矩阵的点乘运算

例:

\(左除):

A\B=inv(A)*B,其中inv(A)表示A逆阵,例如求解AX=B。

A=[100;040;009];

B=[123;010;011];

X=A\B

/(右除):

A/B=A*inv(B),例如求解XA=B。

X=B/A

(3)变量与表达式

●Matlab的赋值语句有两种形式:

其一为:

<变量>=表达式;

其二为:

表达式,将表达式的值赋于一个自动定义的变量ans。

注:

A:

如果以;结尾,则不显示计算结果,否则显示计算结果。

B:

除保留字外,变量可以用字母开头,后跟19个字母或数字。

变量名区分大小写,变量使用时不需要先定义,也不必定义变量的类型。

●可以用who或whos来显示已定义的变量

例如:

who

Yourvariablesare:

ABCaans

whos

NameSizeBytesClass

A2x348doublearray

B3x372doublearray

C2x348doublearray

a3x248doublearray

ans1x18doublearray

Grandtotalis28elementsusing224bytes

●一些常用的变量

pi3.14159265//π值

isqrt(-1)//虚数单位

jsameasi

epsfloating-pointrelativeprecision,2.2204e-016//容量变量

realminsmallestfloating-pointnumber,2.2251e-308//最小浮点数

realmaxlargestfloating-pointnumber,1.7977e+308//最大浮点数

infinfinity(任意一个非零数除以0)//正无穷大

nanNot-a-number(0/0或inf-inf)//非数

如:

r=1/0

r=inf

1/r

ans=0

(4)矩阵的其他简单运算:

A’:

矩阵转置

inv(A):

A-1

sum(A):

得到一个行向量,其元素为A的每一列的和

a=[123;456]

sum(a)sum(a’)

diag(A):

得到一个列向量,其元素为A的对角元

sum(diag(a))

冒号(:

)运算符:

a:

b:

c:

生成一个由等差数列构成的行向量X,X(i+1)-X(i)=b

例:

0:

pi/4:

pi

ans=

00.78541.57082.35623.1416

如果省略b,则等差数列的公差为1

a=0:

0.05:

1

x=linspace(0,1,75)

a=1:

4;b=1:

2:

7;c=[b,a]

等比数列:

logspace(0,2,11)创建起点为10,终点为102,11个元素,公比为100.2

矩阵的变换:

rot90:

矩阵逆时针旋转n*90度。

fliplr:

矩阵左右翻转。

flipud:

矩阵上下翻转。

稀疏矩阵的存储:

sparse(A):

用于把完全矩阵压缩为稀疏矩阵。

A=[0,1,0,0;0,3,0,4;5,0,0,0;0,0,0,7]

sparse(A)

ans=

(3,1)5

(1,2)1

(2,2)3

(2,4)4

(4,4)7

sparse(i,j,u):

函数直接造成稀疏矩阵,i,j为向量分别对应行号和列号,u也为向量,存储非元素的值.

i=[1,2,2,3,4]

j=[2,2,4,1,4]

u=[1,3,4,5,7]

A=sparse(i,j,u)

full函数把稀疏矩阵还原为完全矩阵。

(5)数组及其运算:

数组可以看作是行向量,实质为阵列运算。

是元素对元素的运算,用句号(.)来区别。

数组和矩阵之间的区别在于运算规则不同,矩阵运算由线性代数规则来定义。

运算符:

+,-和.*,./,.\,.^

A.*B:

A与B对应的元素相乘

A.\B:

B的元素除以A的相应元素

A./B:

A的元素除以B的相应元素

A.^B:

A的元素为底,B的相应元素为幂的数组

如:

a=[1:

3;4:

6;7:

9]

b=a;c=a+b;c=a-b

查看下列运算的结果:

a*ba.*ba/ba./ba\ba.\ba^b(指数和底数均为矩阵,无法求解)a.^ba’a.’

2.3基本数学函数

abs(绝对值或复数模)

sqrt(平方根)

real(复数的实部)

imag(复数的虚部)

conj(复数的共轭)

round(舍入为最接近的整数)//round(-0.5)=-1round(0.4)=0

fix(向0方向舍入为整数)//fix(0.99)=0fix(1.01)=1

floor(向负无穷大舍入为整数)//floor(-0.5)=-1floor(0.5)=0

ceil(向正无穷大舍入为整数)//ceil(-0.5)=0ceil(0.6)=1

sign(符号函数)

rem(x,y)(取余数函数)//得到x/y的余数,rem(11,4)=3

sincostanasinatan//三角函数都是面向阵列中的元素操作,角度单位均为弦度。

atan2(y,x)//-pi<=atan2(y,x)<=pi

sinh(双曲正弦)coshtanh

exp(以e为底的指数)

log(自然对数)

log10(常用对数)

bessel(贝塞尔函数)

gamma(伽码函数)

rat(无理数的分式有理逼近)[N,D]=rat(x,tol),要求:

abs(x-N/D)<=tol*abs(x),tol的缺省值为tol=1.e-6*norm(X(:

),1)其中:

norm(X(:

),1)=max(sum(abs((X))))

2.4关于矩阵的一些有用的工具

产生矩阵的工具:

●‘[]’表示空矩阵

空矩阵不包含任何元素,它的维数为0*0;空矩阵可以在运算中传递。

例:

A=[1,2,3;4,5,6;7,8,9]

A(2,:

)=[]

输出:

A=

123

789

空矩阵有矩阵缩维的作用。

●eye:

单位矩阵:

对角线元素为1。

A=eye(3,3)

A=

100

010

001

●zeros:

所有的元素都是0

Z=zeros(2,4)

Z=

0000

0000

●ones:

所有的元素都是1

Z=5*ones(3,3)

Z=

555

555

555

●rand:

矩阵元素是用均匀分布在[0.0,1.0]内产生的随机数

●rand(n):

产生一个n阶(0-1)的随机矩阵

Z=rand(3)

Z=

0.10940.65990.1785

0.98880.35140.3573

0.58600.84950.5347

rand(m,n):

产生一个m*n阶(0-1)的随机矩阵

Z=rand(1,6)

Z=

0.59760.46280.76780.59020.39690.1927

产生[-a,a]之间均匀分布的随机数的公式:

R=a-2*a*rand(m,n)

●randn:

矩阵元素是用期望为0,方差为1的正态分布产生的随机数

Z=randn(3)

Z=

-0.43260.28771.1892

-1.6656-1.1465-0.0376

0.12531.19090.3273

产生均值为b,方差为q2的正态分布随机数的公式:

S=q*randn(m,n)+b

●其它特殊矩阵:

例:

a=[123;456;789]

1.diag(a)%%生成矩阵a的对角矩阵

ans=

1

5

9

2.compan:

伴随矩阵

例:

u=[10-76]

A=compan(u)

A=

07-6

100

010

eig(compan(u))

ans=

-3.0000

2.0000

1.0000

即方程的根。

3.magic:

魔方矩阵(矩阵的元素由1~10组成,行、列和对角线之和相等)

例:

magic(5)

ans=

17241815

23571416

46132022

101219213

11182529

4.tril(a)%%生成矩阵a的下三角矩阵

ans=

100

450

789

5.triu(a)%%生成矩阵a的上三角矩阵

ans=

123

056

009

注:

1.下标引用:

在Matlab中,矩阵元素的引用可用两个下标来表示,如矩阵A中,第i行第j列的元素用A(i,j)引用,也可以用一个下标来表示,用单个下标表示元素并不只限于矢量。

对于矩阵,由于Matlab的运算基本上都是对列操作的,矩阵可以认为是按列优先排列的一个长的列矢量,从而可用单下标引用。

例如2*2的矩阵,A

(1)表示第一列的第一个元素,A

(2)表示第一列的第二个元素,A(3)表示第二列的第一个元素,A(4)表示第二列的第二个元素,当矩阵的下标超出矩阵的实际元素的下标时,将给出错误信息。

但是,当某个值被赋给矩阵的一个新的元素时,Matlab会自动增加矩阵的维数大小。

例如4*4的矩阵A,执行命令A(4,5)=17后,矩阵A将变成4*5的矩阵。

在下标的表达式里使用冒号表示矩阵的一部分。

例如矩阵A(1:

k,j)表示矩阵A的第j列的前k个元素。

例如sum(a(1:

4,4)),表示计算第四列的前四个元素元素的和。

A(:

j)表示矩阵A的第j列的所有元素。

由于有了冒号运算符,例如求矩阵A的第j列元素之和,表示式为sum(A(:

j)。

2.如何建立多维矩阵:

在科学研究与工程运算中,要建立多维矩阵,方法之一是扩展二维矩阵。

例:

先建立一个简单的二维矩阵:

a=[578;019;436]

为a矩阵扩展第三维

a(:

:

2)=[104;356;987]

方法之二,使用cat函数。

它将现有的矩阵按照指定的维数建立新的多维矩阵。

B=cat(dim,A1,A2,...)

例:

b=cat(3,[28;05],[13;79])

2.5复杂的矩阵运算

一些矩阵运算:

size(A):

得到矩阵的阶,得到矩阵的n行m列.

rank(A):

得到矩阵的秩

det(A):

行列式

eig(A):

特征值和特征向量

e=eig(A)得到特征值

[v,d]=eig(A):

A*v=v*d

svd(A):

矩阵的奇异值分解[u,s,v]=svd(A),u,v正交阵,s对角阵,A=usv’

cond(A):

得到矩阵的条件数(最大奇异值和最小奇异值的比值)

lu(A):

LU分解(A必须是一个方阵)

[l,u]=lu(A):

u上三角阵,l:

一个下三角阵和一个置换矩阵的积

[l,u,p]=lu(A):

u上三角阵,l:

下三角阵,p:

置换矩阵

qr(A):

QR分解

[q,r]=qr(A):

r:

上三角阵,q:

正交阵

2.6矩阵输出格式

格式命令(数字)

X=[4/31.2345e-6];

formatshort:

以定点数形式显示,小数后面保留4位有效数字

X

X=

1.33330.0000

formatshorte:

以浮点数形式显示,小数后面保留4位有效数字

X

X=

1.3333e+0001.2345e-006

formatshortg:

以定点数或浮点数的最佳形式显示,小数后面保留4位有效数字

X

X=

1.33331.2345e-006

formatlong:

以定点数形式显示,小数后面保留14位有效数字

X

X=

1.333333333333330.00000123450000

formatlonge以浮点数形式显示,小数后面保留14位有效数字

X

X=

1.333333333333333e+0001.234500000000000e-006

formatlongg以定点数或浮点数的最佳形式显示,小数后面保留14位有效数字

X

X=

1.333333333333331.2345e-006

formatbank以货币方式显示

X

X=

1.330.00

formatrat用有理数近似表示

X

X=

4/31/810045

formathex用16进制表示

X

X=

3ff55555555555553eb4b6231abfd271

formatcompact以紧凑形式显示(formatloose以松散形式显示)

X

X=

3ff55555555555553eb4b6231abfd271

长命令行用“…”来表示连接

第三章图形

在分析问题的结果的时候,图形往往是一种很有用的工具,它可以帮助我们直观地了解结果的某些性态。

Matlab提供了很强的图形功能,能够在根据向量或矩阵给定数据来生成图形。

Matlab图形有数据可视化和图形处理两大功能,在数据的可视化部分,Matlab可使用户计算所得的数据根据其不同情况转化成相应的图形。

用户可以选择直角坐标、极坐标等不同的坐标系;它可以表现出平面曲线、空间曲线,绘制直方图、向量图、柱状图及空间网状面图、空间表面图等。

图形函数有4种:

通用图形函数、二维图形函数、三维图形函数、特殊图形函数.

建立一个图形的步骤:

步骤

典型代码

1)准备数据

x=0:

0.2:

12

y1=bessel(1,x);

y2=bessel(2,x);

y3=bessel(3,x);

2)选择窗口,决定绘图位置

figure

(1)

subplot(2,2,1)

3)调用基本绘图函数

h=plot(x,y1,x,y2,x,y3);

4)设置绘图线条样式和标记

set(h,'LineWidth',2,{'LineStyle'},...

{'--';':

';'-.'}

set(h,{'Color'},{'r';'g';'b'})

5)设置坐标轴范围、刻度和栅格线

axis[012-0.51])

gridon

6)标记图形坐标轴、图形图例以及其它文字

xlable('Time')

ylable('Amplitude')

legend(h,'First','Second','Third')

title('BesselFunctions)'

[y,ix]=min(y1);

te

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

当前位置:首页 > 高中教育 > 高考

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

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