matlab第一章MATLAB系统与语言简介.ppt_第1页
matlab第一章MATLAB系统与语言简介.ppt_第2页
matlab第一章MATLAB系统与语言简介.ppt_第3页
matlab第一章MATLAB系统与语言简介.ppt_第4页
matlab第一章MATLAB系统与语言简介.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.5 矩阵运算与数组运算 1.5.1 矩阵的创建函数 创建向量对象 例如:x=1:5; y=0:pi/4:2*pi; z=6:-1:0; x=(0.0:0.2:3.0); y=exp(-x).*sin(x); x y 能创建向量的其它函数: logspace 函数,创建对数等距的向量 y=logspace(d1,d2) y=logspace(d1,d2,N),linspace 函数,创建指定长度的等距向量 k=linspace(-pi,pi,4) 创建特殊矩阵 MATLAB提供用于创建某些特殊矩阵的函数 zeros 元素全为零的矩阵 ones 元素全为 1 的矩阵 rand 元素为一致分布的

2、随机矩阵 rand(4,3) randn 元素为正态分布的随机矩阵 eye 单位矩阵,compan 多项式的伴随矩阵 diag 向量的对角矩阵 gallery 检验矩阵 1.5.2 矩阵的角标 角标:矩阵元素在矩阵中的行列号,A(i,j) 矩阵角标可以是一个向量,如果 x 和 v都是长度为 n 的向量,则 x(v) 表示新的向量 x(v(1), x(v(2), , x(v(n)。 若 A 是 10*10 的矩阵 语句 A(1:5,3) A(1:5, 7:10) A(:,3) A(1:5,:) A(:,3 5 10)=B(:,1:3) A(:,n:-1:1) A(:) 矩阵A的元素按列排列为一个

3、列向量 设A是3*2的矩阵, A(:)=11:16,矩阵的0-1角标 以0-1为元素的向量作为矩阵的角标向量 设A是一个m*n阶矩阵,L是一个长度为m的0-1向量,则 A(L,:) 表示由向量L的非零元素对应的矩阵A的行组成的子块 举例 x=45,78,90;32,43,50;60,24,84;96,78,35 L=x(:,2)42; a=x(L,:),设A是3*2的矩阵, A(:)=11:16; A矩阵为 11 14 12 15 13 16,median 矩阵各列的中值向量 std 标准偏差向量 sum 元素之和向量 prod 元素之积向量 cumsum 累加和向量 cumprod 累积向量

4、 diff 差分向量 hist 直方图向量 cov 列向量卷积 sort 排序 corrcoef 矩阵相关系数,MATLAB5.0及以上版本中,上述函数(除corrcoef 之外)都可以应用于多维数组。 例如:sum(M,d) M是一个n维数组 M=zeros(3,3,4); for k=1:4 M(:,:,k)=k*ones(3,3); end sum(M,1); sum(M,2); sum(M,3),1.5.4 线性代数 1. 矩阵分解和线性方程求解 (1)三角分解 A=LU 是最基本的矩阵分解方法,是求解线性方程的基本算法,L: 下三角矩阵 U:上三角矩阵 lu(A) 在理论上L应当为对

5、角线元素为1的下三角矩阵 调用命令:L,U=lu(A) L经过重新排列后才可以是一个下三角矩阵 调用命令:L,U,P=lu(A), P A=L U P:置换阵 矩阵的除法以LU分解为基础(举例),(2)正交分解 QR分解 将一个方阵或长方阵表示为一个正交矩阵和个三角矩阵的乘积 A=QR 调用命令 Q,R=qr(A) 举例 A=1 2 3;4 5 6;7 8 9;10 11 12,( b=1 3 5 7) Q,R=qr(A), (Ax=b) (3)奇异值分解(SVD) A=US V U,S,V=svd(A) 使用矩阵奇异值分解算法的Matlab函数主要有:,矩阵的广义逆pinv(A)、矩阵的秩r

6、ank(A)、矩阵的Euclide范数norm(A,2)、矩阵的条件数cond(A)。 (4)特征值分解 Ax=x 调用命令 eig(A) 返回列向量 调用命令 X, D=eig(A) D由特征值组成的对角线矩阵,X的列由对应的特征向量组成。,2. 矩阵函数和矩阵分析 在矩阵分析方面,MATLAB提供了许多函数:多项式表示法、矩阵函数、矩阵范数、条件数等。,(5)多项式表示法 f(s)=an sn + an-1 sn-1 + a1 s + a0 在Matlab中用系数向量表示为 p=an an-1 a1 a0 例 A=1 2 3;4 5 6;7 8 0 矩阵A的特征多项式 p=poly(A)

7、求特征多项式的根 r=roots(p) r=eig(A) poly 函数的另一个作用是由指定的全部根求出该多项式。 若有两个多项式,求两个多项式的乘积可有这两个多项式的系数向量的卷积得到: a=1 2 3; b=4 5 6 ; c=conv(a,b) 利用逆卷积可以做多项式的除法 q, r=deconv(c,a) Matlab 提供的多项式函数主要包括: poly , roots, polyval, polyvalm, conv, deconv, residue, polyder, polyfit,函数polyval 和 polyvalm的区别 设 A为方阵, p(s)=s3-2s+12 po

8、lyval(p,A)的含义 A.3-2*A+12*ones(size(A); polyvalm(p,A)的含义 A*A*A-2*A+12*eye(size(A),(6)矩阵函数 以矩阵为变量的Matlab函数 矩阵的指数运算 expm(a) eA 矩阵的对数运算 logm(a) expm(A)的逆矩阵 矩阵的开方运算 sqrtm(a) X2=A的根X,(7)矩阵范数与条件数 cond 矩阵的L2范数的条件数 norm 矩阵的L1范数、 L2范数、F范数和无穷范数 rank 矩阵的秩 rcond 条件数估计,1.6 MATLAB的应用举例,1.6.1 在信号处理中的应用 在信号处理中,向量用来描

9、述信号的取样(或采样、抽样)或离散信号序列。 对于有多个参数变量系统,矩阵的某一行对应于一组样本点,某一列对应于信号的某个参数。 在Matlab的基本环境中,用于信号处理的函数有: abs 复向量的模; angle 复向量的幅角向量 conv、 deconv、cov、fft、ifft、fft2、ifft2、conv2,离散时间信号,1.单位 采样 序列,function x,n = impseq(n0,n1,n2) % 产生 x(n) = delta(n-n0); n1 n2) | (n1 n2) error(参数必须满足 n1 = n0 = n2) end n = n1:n2; %x = z

10、eros(1,(n0-n1), 1, zeros(1,(n2-n0); x = (n-n0) = 0;,% b) x(n) = nu(n)-u(n-10)+10*exp(-0.3(n-10)(u(n-10)-u(n-20); %0=n=20 n = 0:20; x1 = n.*(stepseq(0,0,20)-stepseq(10,0,20); x2 = 10*exp(-0.3*(n-10).*(stepseq(10,0,20)-stepseq(20,0,20); x = x1+x2; subplot(2,2,2);stem(n,x); title(例 2.1b 的序列图) ylabel(x(

11、n);axis(0,20,-1,11);text(21,-1,n) % % c) x(n) = cos(0.04*pi*n) + 0.2*w(n); 0=n=50, w(n): Gaussian (0,1) n = 0:50; x = cos(0.04*pi*n)+0.2*randn(size(n); subplot(2,2,3);stem(n,x);title(例 2.1c 的序列图) ylabel(x(n);axis(0,50,-1.4,1.4);text(53,-1.4,n),% % d) x(n) = .,5,4,3,2,1,5,4,3,2,1,.; -10=n=9 n=-10:9;

12、x=5,4,3,2,1; xtilde=x * ones(1,4); xtilde=(xtilde(:); subplot(2,2,4);stem(n,xtilde);title(例 2.1d 的序列图) ylabel(xtilde(n);axis(-10,9,-1,6);text(10,-1,n),例2 信号合成,% Chapter 02: Example 02.02: 信号合成 % figure(1); clf n = -2:10; x = 1:7,6:-1:1; % a) x1(n) = 2*x(n-5) - 3*x(n+4) x11,n11 = sigshift(x,n,5); x12

13、,n12 = sigshift(x,n,-4); x1,n1 = sigadd(2*x11,n11,-3*x12,n12); subplot(2,1,1); stem(n1,x1); title(例2.2a的序列) text(max(n1)+2,min(x1)-1,n); ylabel(x1(n); axis(min(n1)-1,max(n1)+1,min(x1)-1,max(x1)+1) set(gca,XTickMode,manual,XTick,min(n1),0,max(n1),% % b) x2(n) = x(3-n) + x(n)*x(n-2) x21,n21 = sigfold(

14、x,n); x21,n21 = sigshift(x21,n21,3); x22,n22 = sigshift(x,n,2); x22,n22 = sigmult(x,n,x22,n22); x2,n2 = sigadd(x21,n21,x22,n22); subplot(2,1,2); stem(n2,x2); title(例2.2b的序列) text(max(n2)+2,0,n); ylabel(x2(n); axis(min(n2)-1,max(n2)+1,0,40) set(gca,XTickMode,manual,XTick,min(n2),0,max(n2),(3)产生复数值信号,

15、绘制幅度、相位、实部、虚部的波形,% Chapter 02: Example 02.03: Signal Synthesis of complex sequence % figure(1); clf % a) x(n) = exp(-0.1+j0.3)n), -10 = n = 10; n = -10:1:10; alpha = -0.1+0.3j; x = exp(alpha*n); subplot(2,2,1); stem(n,real(x);title(实部); a=axis;text(a(2)+1,a(3),n); subplot(2,2,2); stem(n,imag(x);titl

16、e(虚部); a=axis;text(a(2)+1,a(3),n); subplot(2,2,3); stem(n,abs(x);title(振幅);xlabel(n); subplot(2,2,4); stem(n,(180/pi)*angle(x);title(相位); xlabel(n);,卷积,Conv可计算两个有限长度序列的卷积。 例1,差分方程与数据滤波,设 a, b, x 是向量,滤波器方程,例1,a. 计算脉冲响应 n=-20,.,100 b. 计算阶跃响应 c. 考察系统是否稳定,% Matlab第二章例2.9; % a=1,-1,0.9;b=1; % Part a) x=impseq(0,-20,120);n=-20:120; h=filter(b,a,x); subplot(2,1,1);stem(n,h) axis(-20,120,-1.1,1.1) title(脉冲响应);text(125,-1.1,n);ylabel(h(n) % % Part b) x=stepseq(0,-20,120); s=filter(b,a,x); subplot(2,1,2);stem(n,s) axis(-20,120,-.5,2.5) title(阶跃响应);xlabel(n);ylabel(s(n),% %print -deps2 ex021000.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论