Matlab基础Word文件下载.docx
《Matlab基础Word文件下载.docx》由会员分享,可在线阅读,更多相关《Matlab基础Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
y=log(0);
Warning:
只显示告警信息而不显示运行结果。
此时y仍然被赋值为-Inf。
一行中可以有多条命令,命令与命令之间应用逗号“,”或分号“;
”隔开。
以逗号结尾的命令显示结果,以分号结尾的命令不显示结果。
b=1/0,a=atan(b)*180/pi;
a
Dividebyzero
b=
Inf
a=
90
这里,“y=log(0);
”只显示告警信息而不显示运行结果。
“b=1/0,”既显示告警信息(被零除:
Dividebyzero),也显示运行结果(无穷大:
Inf)。
语句“a=atan(b)*180/pi;
”被运行但结果未显示。
在MATLAB中atan是反正切函数,pi是圆周率。
语句“a”的作用是显示a的值:
。
如果语句有运算结果但此结果未被赋值,那么MATLAB自动将此结果赋值给变量“ans”,它是英语单词answer的前三个字母。
例如:
0.5*erfc(sqrt(4.77))
ans=
0.0010
此处,MATLAB把的运算结果赋值给ans。
erfc是互补误差函数,sqrt是求平方根。
有些命令除了在命令行状态下有显示外,还会激活其它图形窗口。
如命令intro、demo等。
intro是MATLAB简介,demo是MATLAB的演示程序。
这两个命令都是用MATLAB编写而成的。
在MATLAB中标识符的大小写是有区别的。
1.2矩阵、矢量与标量
1.2.1矩阵
MATLAB的基本运算对象是矩阵。
方括弧“[]”用来定义矩阵。
逗号“,”或空格用来分隔一行中的不同元素,分号“;
”用来分隔不同的行。
a=[1,2,3;
4,5,6;
7,8,9]
a=
123
456
789
是一个3乘3的矩阵。
1.2.2矢量
只有一行或一列的矩阵就是矢量,我们分别称其为行矢量及列矢量。
b=[1,4,8,2]
b=1482
是一个行矢量。
而
c=[1;
4;
8;
2]
c=
1
4
8
2
是一个列矢量。
考虑到本课的具体需要,今后我们主要只考虑行矢量。
1.2.3标量
只有一个元素的矢量或矩阵就是标量。
例如d=[1]或d=1把d定义为一个值为1标量。
1.2.4数据类型
实数
MATLAB不需要对实数作类型说明,所有的数都按双精度浮点方式保存。
对很大及很小的数可采用科学记数法:
例如1.3e-18表示。
字符串
MATLAB也支持字符串变量。
字符串由一对单引号界定。
字符串在MATLAB中被看作是一个矢量,每个字符构成矢量的元素。
例如str='
hello'
等价于str=['
h'
'
e'
l'
o'
]。
复数
在MATLAB中如果标识符i或j没有被定义过,那么一个复数可以简单地用两个实数a,b组成:
d=a+j*b或d=a+i*b表示复数。
许多人编程时习惯用i、j作循环变量,如果你的程序涉及复数运算的话,最好避免使用它们。
1.2.5冒号“:
”
设a1,a2,step是三个实数标量。
则a1:
step:
a2表示一组实数,其中第一个是a1,第二个是a1+step,依此类推,最后一个数小于等于a2。
step=1时可省略成a1:
a2。
例如矢量[1:
3]就是矢量[1,2,3],而矢量[3.3:
-1.25:
0]等于矢量[3.3,2.05,0.8]。
1.2.6空矢量
没有元素的矢量称空矢量。
用[]来表示。
a=[3:
-2:
5]
[]
的结果是一个空矢量。
1.2.7矢量的引用
若A是一个矢量,A(k)是A的第k个元素,其中k的最小值为1,最大值为length(A)。
函数length(X)的返回值是矢量X的长度。
若A是一个行矢量,B=A(2:
7)是由A的第2至第7个元素组成的行矢量。
C=[A,B]也是一个矢量,C的前length(A)元素正好是矢量A,后length(B)个元素正好是矢量B。
若A是一个矢量,B=A(1:
2:
length(A))是所有A的奇序数元素。
例如,A=[1:
100],则矢量A(1:
100)的元素是1到100之间的所有奇数。
矢量A(30:
30:
100)等价于[30,60,90]。
矢量A([1,9,67])等价于[A
(1),A(9),A(67)]。
1.3基本运算
1.3.1矢量与标量的加减乘除
矢量加以(+)、减以(-)、乘以(*)或除以(/)一个标量时,其结果是该矢量的每一个元素加、减、乘、除以同一标量。
例如A=[1:
5]+1的结果是[2,3,4,5,6],c=[3,1,1)]*3+j的结果是复数矢量[9+j,3+j,3+j,3+j]。
标量加以(+)、减以(-)或乘以(*)矢量的结果与矢量加以(+)、减以(-)或乘以(*)标量的结果相同,即矢量与标量的加、减、乘(+、-、*)运算满足交换律。
但请注意:
标量除以(/)矢量(a/A)是非法的。
1.3.2矢量与矢量之间的加减
两个相同长度的矢量相加或相减是其对应的元素相加或相减。
a=[1:
3]*5-[6:
6:
20]/3
a=369
1.3.3矢量与矢量之间的点乘“.*”与点除“./”
若A与B是两个长度相同的矢量,则A.*B是A与B的对应元素相乘,A./B是A与B的对应元素相除。
例如C=[1:
3].*[2,5,5]的结果是[2,10,15]。
D=[4,10,2]./[2,2,1]的结果是[2,5,2]。
1.3.4幂“^”与点幂“.^”
对于标量a、b,a^b是以a为底,b为指数的幂运算。
例如2^3=8;
对于标量x及矢量A,A.^x是对矢量A的每一个元素求以x为指数的幂运算。
[-1,4,9].^0.5的结果是[j,2,3];
对于标量x及矢量A,x.^A是一个矢量,它的每一个元素是以x为底,以A的对应元素为指数的幂。
例如10.^[-2:
2]的结果是[0.01,0.1,1,10,100]。
对于两个相同长度的矢量A、B,A.^B的结果是一个与A同长度的矢量。
其元素是以A的对应元素为底,以B的对应元素为指数的幂。
1.3.5inf与eps
一个标量除以零得inf。
inf自身是一个标量,它加减乘除以任何实标量仍为inf。
但inf/inf,inf-inf及inf*0的结果是NaN(NotaNumber),它表示结果不确定。
标量eps相当于无穷小,它反映了运算的精度。
对于MATLABforWindows,eps的初始值为2.2204e-16。
eps的值可任意设置,例如可设eps=1e-20或其它值。
有时为了避免程序运行中除以零引起麻烦,我们可给除数加上eps,例如
x=[-2:
2]*pi;
y=sin(x)./x
y=
1.0e-016*
-0.38980.3898NaN0.3898-0.3898
此处的显示表示y的值是1.0e-16*[-0.3898,0.3898,NaN,0.3898,-0.3898]。
由于x(3)是零,所以sin(x(3))/x(3)发出告警,并给出结果为NaN。
将x加上eps,前面的例子便成为
2]*pi+eps;
0.00000.00001.00000.00000.0000
1.4函数
MATLAB中所有的函数或命令都可借助help菜单或在命令行中键入
>
help
或
help主题名
得到帮助。
结合本课的需要,我们在这里介绍一些常用函数。
1.4.1三角函数
三角函数包括正弦sin、余弦cos、正切tan、反正切atan等。
X=[0:
pi/6:
pi];
Y=sin(X)
Y=
00.50000.86601.00000.86600.50000.0000
本例中。
cos(X)是对X的每一个元素求余弦。
1.4.2指数类函数
指数类函数包括e的指数exp、自然对数log、常用对数log10、平方根sqrt等。
在MATLAB中可对负数求对数或求平方根。
log([-1:
+2])
ans=
0+3.1416i-Inf00.6931
这里,。
MATLAB在运行至求log(0)时给出了警告但并不中断运行。
1.4.3复数类函数
复数类函数包括求模abs、求角度angle、求共轭conj、求实部real、求虚部imag等。
1.4.4取整函数
取整函数包括零方向取整fix、负无穷方向取整floor、正无穷方向取整ceil、四舍五入round、取符号sign等,例如
x=[-1:
0.5:
1]*pi;
...
[x;
fix(x);
floor(x);
ceil(x);
round(x);
sign(x)]
-3.1416-1.570801.57083.1416
-3.0000-1.000001.00003.0000
-4.0000-2.000001.00003.0000
-3.0000-1.000002.00004.0000
-3.0000-2.000002.00003.0000
-1.0000-1.000001.00001.0000
在MATLAB中,键入省略号(三个或三个以上的小数点)表示下一行是本行的继续。
1.4.5矩阵产生函数
全零矩阵zeros及全1矩阵ones
zeros(n,m)产生一个尺寸为,元素全为零的矩阵。
ones(n,m)产生一个尺寸为,元素全为1的矩阵。
若n或m不是整数,则按取整后的结果算。
若n或m中(取整后)有一个为0或负值则返回一个空矩阵。
zeros(N)产生一个N维全零方阵。
ones(N)产生一个N维全1方阵。
zeros(size(A))产生一个尺寸与A相同的全零矩阵。
ones(size(A))产生一个尺寸与A相同的全1矩阵。
这里函数size(a)返回一个行矢量[n,m],其中n是a的行数,m是a的列数。
均匀随机数rand及正态随机数randn
rand(n,m)产生一个尺寸为的矩阵,其元素按均匀分布随机取值于区间[0,1]。
randn(n,m)产生一个尺寸为的矩阵,其元素服从标准正态分布(均值为零,方差为1)。
randn(size(a))产生一个尺寸与