kl800.com省心范文网

MATLAB在电子信息课程中的应用22


第2章 基本语法
2.1 变量及其赋值
2.1.1 标识符是标示变量名、常量名、函数名和文件名 的字符串的总称。MATLAB对大小写敏感,函数名和 MATLAB 文件名的字符包括全部的英文字母、阿拉伯数字和下 划线等符号。 MATLAB内部只有一种数据格式,即双精度(64 位)二进制。但其显示方式有8种。

1

2.1.2 矩阵及其元素的赋值 赋值就是把数赋予代表常量或变量 的标识符。MATLAB中的变量或常量都 代表矩阵,赋值语句的一般形式为: 变量=表达式(或数) 2.1.3 复数 复数的虚数部分用i或j表示,例如: C=3+5.2i Z=[1+2i,3+2i;4-5i,2+1i]
2

2.1.4 变量检查 可用who或whos命令 基本赋值矩阵 eye(m,n) 或 eye(m) 产生m*n或m*m的单位矩阵 zeros(m,n) 或zeros(m) 产生m*n或m*m的零矩阵 ones(m,n) 或 ones(m) 产生m*n或m*m的全部元素 为1的矩阵

3

2.2 矩阵的初等运算

2.2.1 矩阵的加减乘法 与普通算术相同,包括加、减、乘、除, 也可用括号来规定运算的优先次序。 注意:乘法有标量乘和矩阵乘,除法有左 除(\)和右除(/)。 例1:>> A=1:2:8 >> A=linspace(0,12,4) >> A=logspace(0,2,5)

4

例2
>> A=ones(3,3) >> B=rand(3) >> C1=A+B >> C2=C1-2 >> C3=A.*B >> C4=A./B >> B(1,2)=0 >> C4=A./B
5

例3
>> A=[1:3;2:4;3:5] >> A.^2 >> 2.^A >> A.^A 冒号操作符
– – –

>>a=0:1:10 1-10,差为1 >>a=linspace(0,1,10) linspace(x0,x1,n) 其中n代表的是点的数目,即分成n-1等分。 步长应当是(x1-x0)/(n-1) – >>a=logspace(1,2,10) – 产生了10个数,范围是:10^1-10^2,特点:等比数列
6

例4
>> A=rand(3) >> B=rand(3) >> A<=B >> A<0.5

7

例6
>> A=rand(4) >> A(5,6)=23 -------------------------------------->> A=[1 2 3;14 5 6;7 8 9] >> y=[23;60;77] >> x=inv(A)*y >> x1=A\y >> x2=y'/A >> X=inv(A) >> A*X >> X*A
8

例7
>> A=[1 2 3;4 5 6;7 8 9] >> rank(A) >> rank(eye(4)) ------------------------------------->> A=pascal(3) >> det(A) >> B=ceil(rand(3,4)*10) >> det(B)
9

例8
>> P=[4,3,6,9]; >> y=poly2sym(P) -------------------------->> r=[1 3 5]; >> p=poly(r) %由根求方程 >> poly2sym(p) >> roots(p) %求方程的根
10

矩阵的代数运算
转置 B=A’ 加减乘 A+B A-B A*B 左除 A\B 即AX=B的解X=A-1B 右除 A/B 即XB=A的解X=AB-1 翻转 fliplr flipud rot90 乘方 A^B 点运算 A.*B A./B A.\B A.^B A.’
11

矩阵处理
– – – – – – – –

trace(A) 迹(对角线元素的和 对角线元素的和) 对角线元素的和 diag(A) A对角线元素构成的向量 对角线元素构成的向量; 对角线元素构成的向量 diag(x) 向量 的元素构成的对角矩阵 向量x的元素构成的对角矩阵 的元素构成的对角矩阵. tril(A) A的下三角部分 的下三角部分 triu(A) A的上三角部分 的上三角部分 flipud(A) 矩阵上下翻转 fliplr(A) 矩阵左右翻转 reshape(A, m, n) 矩阵 的元素重排成 行n列 矩阵A的元素重排成 的元素重排成m行 列 矩阵
12

矩阵分析
– – – – – – –

rank(A) 秩 det(A) 行列式 行列式; inv(A) 逆矩阵 逆矩阵; null(A) Ax=0的基础解系; 的基础解系; 的基础解系 orth(A) A列向量正交规范化 列向量正交规范化 norm(x) 向量 的范数 向量x的范数 norm(A) 矩阵 的范数 矩阵A的范数
13

(4) MATLAB的符号计算 ) 的符号计算 符号计算的两大特点:符号解和任意精度解。 符号计算的两大特点:符号解和任意精度解。 MATLAB的符号计算借助符号工具箱(Symbolic)实现。 的符号计算借助符号工具箱( 的符号计算借助符号工具箱 )实现。 符号表达式和符号矩阵 矩阵。 符号表达式和符号矩阵。 ? 定义基本符号对象的指令有两个:sym,syms。 定义基本符号对象的指令有两个: , 。 ? 符号表达式: y = sym('2 *sin( x) * cos( x)' ) 。 符号表达式: ? 符号矩阵: 符号矩阵 矩阵: msy = sym('[1/(a + x), sin( x), (b ? x) /(a + x);1, exp( x), x^2]' ) 符号矩阵的基本运算。 符号矩阵的基本运算。 矩阵的基本运算 ? 两个符号矩阵的和: symadd(A,B) 两个符号矩阵的和: 矩阵的和 ( , ) ? 两个符号矩阵的差: symsub(A,B) 两个符号矩阵的差: 矩阵的差 ( , ) ? 两个符号矩阵的积: symmul(A,B) 两个符号矩阵的积: 矩阵的积 ( , ) ? 两个符号矩阵的除: symdiv(A,B) 两个符号矩阵的除: 矩阵的除 ( , ) ? 符号矩阵的求逆: inverse(B) 符号矩阵的求逆: 矩阵的求逆 ( )
14

2.3 元素群运算
2.3.1 数组及其赋值 数组通常是指单行或单列的矩阵。 (1)t=[初值:增量:终值] 例如:t=[0:0.2:5] (2)t=linspace(初值,终值,点数) 例如:t=linspace(0,2*pi,9) 此外还有logspace命令

15

2.3.2 元素群的四则运算和幂次运算 元素群运算也就是矩阵中所有元素按 单个元素进行运算。 为了与矩阵作为整体的运算符号相区 别,要在运算符*、/、\、^前加一个点符 号“.”。以表示在做元素群运算。 参与元素群运算的两个矩阵必须是同 阶的。

16

2.3.3 元素群的函数 大部分的MATLAB函数都适用于做元素 群运算,只有专门说明的几个除外,即: *、/、\、^和expm、sqrtm、logm三个函 数。 举例: 三角函数:sin,cos ,tan, 指数函数:exp,log,sqrt, 取整函数:round,fix,ceil
17

2.4 逻辑判断及流程控制
2.4.1 关系运算 所谓关系运算是指两个元素之间数值的比 较。 MATLAB常用的关系操作符有:<(小于)、 <=(小于或等于)、>(大于)、>=(大于或等于)、 = =(等于)、 ~=(不等于)。 关系运算的结果只有两种可能,即0或1。0 表示该关系式为“假”,1表示该关系式为 “真”。
18

2.4.2 逻辑运算 逻辑量只能取0或1两个值。逻辑运算符 有:与(&),或(|),非(~)。有时也包括异 或(xor)。

19

2.4.3 流程控制语句 MATLAB共有4种流程控制语句 1:IF语句 常见为:if (表达式1) 语句组A else 语句组B end 2:While 格式:while (表达式) 语句组A,end 3:for语句 格式:for k=初值:增量:终值 语句组 end
20

2.5 基本绘图方法
MATLAB提供了十分丰富的绘图功能, 使用help graph2d可以得到所有画二维图 形的命令,而使用help graph3d给出所有 三维图形的命令。此外在graphics和 specgraph函数库中还有一些特殊绘图指 令。下面只讲述常用的绘图命令。

21

1:二维图形
一、基本形式 MATLAB最基本的绘图命令为plot。如 果x和y是两个等长向量,那么plot(x,y)绘 x y plot(x,y) 制了x和y之间关系的线性坐标图。图中 x y 自动给出坐标、边框。例如 x=0:0.01:pi*3; y=sin(x); plot(x,y)
22

如果运算表达式改变,如: x=0:0.01:pi*3; y=sin(x)+2*cos(x); plot(x,y) 在MATLAB中仅改变y的表达式即可方便 看到新的结果

23

MATLAB显示图形是以给出图形窗口来显示的, Windows版的MATLAB可以显示多个图形窗口。 图形窗口使用figure命令打开新窗口,使用 figure(m)命令切换窗口。 MATLAB还可以在图形上加入标题,例如: title('First Figure Example') %给出题头 xlabel(‘x’) % x轴的标注 ylabel(‘y’) % y轴的标注 grid on %增加网格 gtext(‘sinx+2cosx’) %使用鼠标增加曲 线标记 legend(‘y’) %加图例
24

MatLab图形绘制功能 图形绘制功能
基本绘图函数
含 义 命 令 plot loglog semilogx semilogy title xlabel ylabel text gtext grid 建立向量或矩阵各队队向量的图形 x、y轴都取对数标度建立图形 x轴用于对数标度,y轴线性标度绘制图形 y轴用于对数标度,x轴线性标度绘制图形 给图形加标题 给x轴加标记 给y轴加标记 在图形指定的位置上加文本字符串 在鼠标的位置上加文本字符串 打开网格线
25

Matlab命令提示: Matlab命令提示: 命令提示 plot,基本用法为 基本用法为: (1)绘制二维的最常用的命令是 plot,基本用法为: plot(x,y): 为横坐标、 plot(x,y):以x为横坐标、y为纵坐标绘制函数或 数据图形 plot(y):绘制一个向量的图形 相当于x=[1,2, 绘制一个向量的图形, x=[1,2,…, plot(y):绘制一个向量的图形,相当于x=[1,2, , length(y)]时的情形 length(y)]时的情形 在同一图形窗口中绘制多个曲线:可用plot(x,[y1; 在同一图形窗口中绘制多个曲线:可用plot(x,[y1; y2;…])命令,其中x是横坐标向量,[y1;y2;…] ])命令 y2; ])命令,其中x是横坐标向量,[y1;y2; ]是 由几个函数的纵坐标拼成的矩阵,这时Matlab Matlab将用 由几个函数的纵坐标拼成的矩阵,这时Matlab将用 不同颜色的曲线表示不同的函数。 不同颜色的曲线表示不同的函数。
26

(2)图形文字标注命令: 图形文字标注命令: xlabel(‘x轴名称’);ylabel(‘y轴名称’ zlabel(‘z xlabel( x轴名称’);ylabel( y轴名称’);zlabel( z轴名 称’) title(‘图形标题 );text(‘说明文字 );用鼠标在特定位 图形标题’ 说明文字’ title( 图形标题’);text( 说明文字’);用鼠标在特定位 置输 入文字。 入文字。 legend命令 可用于说明不同函数所使用的线型。 命令: legend命令:可用于说明不同函数所使用的线型。 绘制三维图形的命令: (3)绘制三维图形的命令: meshgrid命令 用于形成二维网格点。 命令: meshgrid命令:用于形成二维网格点。然后计算在这些网格 上的函数值,为绘制图形做准备。 上的函数值,为绘制图形做准备。 三维绘图命令: 三维绘图命令: %线条图 plot3(x,y,z) %线条图 %网格图 mesh(x,y,z) %网格图 meshc(x,y,z) meshc(x,y,z) %具有基本等高线的网格图 suef(x,y,z) suef(x,y,z) %表面图 suefc(x,y,z) suefc(x,y,z) %具有基本等高线的表面图 ezplot3(x,y,z,’animate ):Matlab6.x提供了ezplot3命令 animate’):Matlab6.x提供了ezplot3命令, ezplot3(x,y,z, animate ):Matlab6.x提供了ezplot3命令, 27 产生三维动画图形。 产生三维动画图形。

(4)条形图 %竖直条形图 bar(x,y) %竖直条形图 %水平条形图 barh(x,y) %水平条形图 %三维竖直条形图 bar3(x,y) %三维竖直条形图 %三维水平条形图 barh3(x,y) %三维水平条形图 线条和颜色控制符: (5)线条和颜色控制符: . 点 y 黄 。 小圆圈 m 棕色 x标记 x x标记 c 青色 + 加号 r 红色 实线 g 绿色 * 星号 b 蓝色 : 虚线 w 白色 -. 点划线 h 黑色 28

例 1-1 绘制函数 y=2sin(1+x)的图像,并计算当 x=0.5 时的函数值。

%给出自变量 %给出自变量 x 的定义域 y=2*sin(1+x); %写出函数形 %写出函数形 式 plot(x, plot(x,y) %绘出函数图形 %绘出函数图形 y=2*sin(1+0.5) %求当 x=0.5 %求当 时的 y 值,其 后不加分号, 直接在窗口中 给出结果 y =1.9950 %输出 %输出 y 的计 算结果 x=(1:0.1:10);
29

例 1-2 绘制函数 y=3x3-10x2+5x-8的图像 +5xfor i=1:100 x(i)=0.1*i; y(i)=3*x(i)^3y(i)=3*x(i)^310*x(i)^2+5*x(i)10*x(i)^2+5*x(i)-8; end plot(x,y)

30

画椭圆
x2 y2 + 2 =1 2 3 2

a = 0:pi/50:2*pi; X = cos(a)*3; %参数方程 Y = sin(a)*2; plot(X,Y); xlabel('x'), ylabel('y'); title('椭圆')
31

条形图
当资料点数量不多时,长条图是很适合的 表示方式: close all; % 关闭所有的图形视窗 x=1:10; y=rand(size(x)); bar(x,y)

32

误差图
x = linspace(0,2*pi,30); y = sin(x); e = std(y)*ones(size(x)); % std:标准差 errorbar(x,y,e)

33

符号表达式画图
在许多的场合,将表达式可视化是有利的。MATLAB 提供了函数ezplot来完成该任务。 >> y=' 16*x^2+64*x+96 ' y= 16*x^2+64*x+96 >> ezplot(y)

34

符号函数画图: 符号函数画图:

ezplot ( f ) ezplot ( f ,[a , b])

表示在默认区间-2*pi<x<2*pi绘制 绘制f=f(x)的函数图 表示在默认区间 绘制 的函数图

表示在a<x<b绘制显函数 表示在 绘制显函数f=f(x)的函数图 的函数图 绘制显函数

ezplot ( f ,[ x min , x max , y min , y max])
表示在区间xmin<x<xmax和ymin<y<ymax绘制隐函数 ,y)=0的函数图 和 绘制隐函数f(x, 表示在区间 的函数图

ezplot ( x , y ,[t min , t max])
表示在区间tmin<t<tmax绘制参数方程 绘制参数方程x=x(t) ,y=y(t)的函数图 表示在区间 绘制参数方程 的函数图
35

三维曲面图函数surf及surfc
格式一:surf(X, Y, Z, C) 功能: 功能:绘制由四个矩阵所指定的带色参数的网 状表面图。视角是由view所指定。轴的刻 所指定。 状表面图。视角是由 所指定 度决定于X, 及 的范围 的范围, 度决定于 ,Y及Z的范围,或当前对轴的 设定;颜色范围由C指定 指定。 设定;颜色范围由 指定。 格式二:surf(X,Y,Z) 功能: 设为与Z相等 功能:将C设为与 相等,则颜色与网的高度 设为与 相等, 成正比。 成正比。

36

三维螺旋线
t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) grid

37

空间中的曲线
t=linspace(0,20*pi, 501); plot3(t.*sin(t), t.*cos(t), t); 乘 .* %注意用点

t=linspace(0, 10*pi, 501); plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);

38

立体网状图

z = xe

? ( x2 + y 2 )

x=linspace(-2, 2, 25); % 在x轴上取25点 y=linspace(-2, 2, 25); % 在y轴上取25点 [xx,yy]=meshgrid(x, y); % xx和yy都是21x21的矩阵 zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵 mesh(xx, yy, zz); % 画出立体网状图

39

网状图填补

z = xe

?( x + y )
2 2

% 在x轴上取25点 % 在y轴上取25点 % xx和yy都是21x21的矩阵 % 计算函数值,zz也是21x21的 矩阵 surf(xx, yy, zz); % 画出立体曲面图 x=linspace(-2, 2, 25); y=linspace(-2, 2, 25); [xx,yy]=meshgrid(x, y); zz=xx.*exp(-xx.^2-yy.^2);

40

3、MATLAB 通用命令

41

二、多重线型
在单一个图形中可以绘制多重线型。最简单的, 使用命令 plot(x1,y1,x2,y2,…,xn,yn) 将x1对y1、x2对y2直到xn对yn的图形绘制在一 个图形中,而且分别采用不同的图形颜色或者 线型。如果x1到xn相同,而y1到yn为等长向量, 则可以使用命令 plot(x,[y1 y2 … yn]) 绘制多重线型。
42

三、图线颜色和线型
如果不指定颜色,MATLAB则对每一条曲线由 蓝色开始,循环遍历六种颜色。缺省的线型为 实线,除非指定不同的线型。图形的颜色和线 型在plot命令中一起给出,如: plot(x1,y1,’c1’,x2,y2,’c2’…) 其中的c1、c2等表示有颜色字符和线型字符组 成的字符串。颜色有:y(黄)、m(紫)、c(青)、 r(红)、g(绿)、b(蓝)、w(白)、k(黑),共7种。 线型有:.(点)、o(圆圈)、x(叉)、+(加号)、*(星 号)、-(实线)、:(点线)、-.(点划线)、--(虚线)。 例如:画蓝色点划线可以使用命令 plot(x,y,’b-‘)即可。
43

四、图形控制命令

MATLAB提供了一组图形控制命令,大 大增强了图形显示能力。例如:axis 可 以手工修改坐标轴的尺寸,clf清除图形 窗口,hold保持当前窗口的图形,subplot 可以将窗口分成多个子窗口,zoom命令 可以将窗口方便地放大和缩小。

44

五、其他X-Y图 其他X 除了基本的绘图指令plot之外,MATLAB还提 供了其他的一些绘制二维图形的函数。他们的 使用方法和plot完全类似,不同的只是讲述聚 会值到不同的图形坐标上。 在对数坐标方面,semilogx,它绘制x轴为对数 标度的图形;函数semilogy绘制y轴为对数标度 的图形;另外,loglog绘制两个轴都为对数间 隔的图形。 MATLAB也可以画极坐标图形,使用函数 polar(theta,rho),其中theta为相角,rho为对应 的半径。 使用bar(x)可以绘制棒图,这对统计或者数据 采集的绘图十分直观并且十分有用。
45

2、三维图形
mesh(z)语句给出矩阵z元素的三维消隐图, 它所生成的网络表面由生成X-Y平面的线 格对应的Z坐标所定义,图形由临接点直 接连接而成。 为了显示双变量函数z=f(x,y)的图形,首 先产生特定的x和y网格矩阵,它们在整 个定义域中分别由重复的行和列构成, 一般生成网络使用meshgrid函数。
46

返回

例 1 多项式部分分式展开。 多项式部分分式展开。
num=10*[1 4 5 6 7]; 7]; den=poly( den=poly([-2;-1;-0。5]); 5]); [res,poles,k]=residue(num,den) res,poles,k]=residue(num,den) k = res = poles = -6.6667 -60.0000 64.1667 -2.0000 -1.0000 -0.5000 上面的结果说明了这个问题 : 10 5 %分子多项式 分子多项式 %分母多项式 分母多项式

10 s4 + 4s3 + 5s2 + 6s + 7 ? 6.6667 ? 60.0000 64.1667 = + + +10 s + 5 (s + 2)(s +1)(s + 0.5) s+2 s +1 s + 0.5
47

(

)

基本计算功能
常用的基本数学函数: 常用 基本数学函数: 基本数学函数

返回

abs(x), angle(z) , sqrt(x) , real(z) , imag(z) , conj(z) , , round(x), fix(x) , floor(x) , ceil(x) , rat(x) , rats(x) , , sign(x), rem(x,y) , gcd(x,y) , lcm(x,y), exp(x), , , , , , , pow2(x),log(x),log2(x),log10(x)。 , , , 。 常用的三角函数: 常用 三角函数: 三角函数 sin(x), cos(x), tan(x) , asin(x), acos(x), atan(x) , , , , , atan2(x,y), sinh(x), cosh(x), tanh(x) , asinh(x), , , , , , acosh(x), atanh(x) 。 ,

48

数组函数和矩阵函数 数组函数和矩阵函数 函数和矩阵

返回

数组函数: 数组函数: 函数 besselj(NU,Z), bessely(NU,Z), beta(Z,W), erf(X), , , , , , , , gamma(X), rat(X,tol), erfinv(Y), ellipke(M,tol), , , , , , , ellipj(U,M) 。 , 基本矩阵函数: 基本矩阵函数: 矩阵函数 cond(A), det(A), dot(A,B), eig(A), norm(A,1), , , , , , , , norm(A,2), norm(A,inf), norm(A,’fro’), rank(A), , , , , , , , rcond(A), svd(A), trace(A), expm(A), expm1(A), , , , , , expm2(A), expm3(A), logm(A), sqrtm(A), , , , , funm(A,’fun’) 。 , 矩阵分解函数 函数: 矩阵分解函数: cdf2rdf(V ,D), chol(A), eig(A), Hess(A) , null(A), , , , , LU(A), orth(A), pinv(A), qr(A), qz(A), rref(A), , , , , , , rst2csf(V ,D), schur(A), subspace(A ,B), svd(A) 。 , , ,
49

联机查询指令:help指令 联机查询指令:help指令
例:help elfun,help exp,help simulink , , lookfor关键词(例: lookfor fourier ) 关键词( 关键词

返回

50

Matlab帮助系统 帮助系统
1、Matlab联机帮助 #工具条中的?按钮; #help菜单栏中前2 项中的任何一项; #在命令窗口中执行 helpdesk或doc。

2、Matlab的网上资源 Matlab的网上资源 web菜单栏 web菜单栏
51


赞助商链接

Matlab 7.0 下载及添加语音处理工具箱(VoiceBox)

MATLAB 的安装目录的 TOOLBOX 目录下, 如 D:\MATLAB7\toolbox\ 2、打开 Matlab,在 MATLAB 命令窗口中输入以下命令: >> cd D:\MATLAB7\toolbox\voicebox >...

天津天姿国色小学2004年高3第22单元第20节课_Matlab考...

天津天姿国色小学2004年高3第22单元第20节课_Matlab考试题库附加答案_小学教育_...用 if 判断语句判断 80≥ x >60,在 MATLAB 中 if 语言后的判断应写为 _...

matlab、lingo程序代码22-随机模拟与系统仿真

matlab、lingo程序代码22-随机模拟与系统仿真_交通运输_工程科技_专业资料。matlab...系统仿真软件 MATLAB---SIMULINK Simulink 是一个用来对动态系统进行建模、仿真和...

matlab模板试题及答案

线代机考模板试题答案周文宏,2012-6-22 一.1. 建立矩阵,用 det()来判断。...matlab数学实验课模板 暂无评价 16页 1下载券 喜欢此文档的还喜欢 matlab模板...

MATLAB课件 第5章 MATLAB符号运算

MATLAB课件 第5章 MATLAB符号运算_计算机软件应用_...MATLAB 中输入符号向量或者矩阵的方法和输入数值类型...(a*a22 - a21*b)/(a11*a22 - a12*a21), -...