MATLAB讲义第二章

合集下载

Matlab第2章讲稿

Matlab第2章讲稿
• 矩阵除法运算又左除和右除之分,运算规则 矩阵除法运算又左除和右除之分,
A/B:右除。相当于A*inv(B) :右除。相当于 ( ) A\B: 左除。相当于 左除。相当于inv(A)*B;一般用于求解线性代数 ; 方程组
A=[1 2;3 4]; B=[3 5;8 6]; A./B 和B.\A比较 比较 ans = 0.3333 0.4000 0.3750 0.6667 A/B和B/A比较 和 比较 ans = 0.4545 -0.0455 0.6364 0.1364 ans = 1.5000 0.5000 -7.0000 5.0000
3、数组和矩阵的除运算 、 (1)数组、矩阵与标量间的除法运算:规则是标量 )数组、矩阵与标量间的除法运算: 与数组的每个元素进行除法运算; 与数组的每个元素进行除法运算;矩阵和标量只 有矩阵右除标量可运算(即矩阵/标量 标量)。 有矩阵右除标量可运算(即矩阵 标量)。 (2)数组、矩阵的除法运算:规则不同 )数组、矩阵的除法运算: • 维数相同的两数组除法是对应元素之间相除。 维数相同的两数组除法是对应元素之间相除。 如 A./B(右除)与B.\A(左除)结果相同 (右除) (左除)
2.2.2
数组、 数组、矩阵操作
1、元素提取 、 A是m行n列矩阵 是 行 列矩阵 A(i,j) (i<=m且j<=n)由A中i指定行,j指定列的元素 且 指定行, 由 中 指定行 指定列的元素 A(i,:)由数组或矩阵中 指定行所对应的所有列元素组 由数组或矩阵中i指定行所对应的所有列元素组 由数组或矩阵中 成的子数组 A(:,j)由数组或矩阵中 指定列所对应的所有行元素组 由数组或矩阵中j指定列所对应的所有行元素组 由数组或矩阵中 成的子数组 A(:)由数组 的各个列按从左到右的次序首末相接的 由数组A的各个列按从左到右的次序首末相接的 由数组 一维长列” “一维长列”子数组

matlab讲义第2章

matlab讲义第2章
5
3.Debug主菜单项 (1)Open M-Files when Debugging:调试时打开M文件 (2)Step:单步调试程序 (3)Step In:单步调试进入子程序 (4)Step Out:单步调试从子程序跳出 (5)Continue:程序执行到下一断点 (6)Clear Breakpoints in All Files:清除所有打开文件中的断点 (7)Stop if Errors/Warnings:在程序出错或报警处停止往下执行 (8)Exit Debug Mode:退出调试模式
4
2.Edit主菜单项 (1)Undo:撤销上一步操作 (2)Redo:重新执行上一步操作 (3)Cut:剪切选中的对象 (4)Copy:复制选中的e to Workspace:粘贴到工作区 (7)Select All:全部选择 (8)Delete:删除所选的对象 (9)Find:查找所需选择的对象 (10)Find Files:查找所需文件 (11)Clear Command Window:清除命令窗口区的对象 (12)Clear Command History:清除命令窗口区的历史记录 (13)Clear Workspace:清除工作区的对象
精品
matlab第2章
2、MATLAB系统构成:五部分
MATLAB开发环境 MATLAB数学函数库 MATLAB语言 MATLAB图形处理系统 MATLAB应用程序接口(API)
3、工具箱是MATLAB的关键部分
MATLAB每年都会增加一些新的工具箱,所以,在一般情况下,工具箱的列表不是 固定不变的。 有关MATLAB工具箱的最新信息可以在http://www. /products中看到。
8
5.Window主菜单项 (1)Close All documents:关闭所有文档 (2)0 Command Window:选定命令窗口为当前活动窗口 (3)1 Command History:选定历史命令窗口为当前活动窗口 (4)2 Current Directory:选定当前路径窗口为当前活动窗口 (5)3 Workspace:选定工作空间窗口为当前活动窗口

matlab课件 第二章 Matlab基础

matlab课件 第二章 Matlab基础

2017/1/10
19
矩阵操作
1、矩阵下标
A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A(m,:):提取第m行元素 A(m1:m2,n1:n2):提取第m1行到第m2行和第 n1列到第n2列的所有元素(提取子矩阵)。 A(:):得到一个长列矢量,该矢量的元素按矩阵的 列进行排列。
2017/1/10
14
3.建立大矩阵 大矩阵可由方括号中的小矩阵或向量建立起来。 4.利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是 e1:e2:e3 其中,e1为初始值,e2为步长(可以为负数),e3 为终止值。
例如:>>a=[1:2:10] a= 1 3 5 7 9
2017/1/10 15
短格式,5位有效数字浮点数
长格式,15位有效数字浮点数 3.333333333333334e+001 十六进制格式 2个十进制位 正、负或零 有理格式 4040aaaaaaaaaaab 33.33 + 100/3
10
复数和复数矩阵
MATLAB的矩阵元素可以是复数或复数表达式,在matlab 中,用i或j字元来表示虚部。 x=1-2*i 注意是2*i而不是2i real(x) 列出实部 imag(x) 列出虚部 conj(x) 计算共轭复数 abs(x) 计算复数大小 angle(x) 计算复数向量的夹角(弧度表示) y=exp(x) 以指数方式表示一个复数
命令语句的输入,也就完成了它的执行,直接便可得 到最终结果。例如
>>a=5; >>b=6; >>c=a*b,
结果显示
c= 30
2017/1/10
7

MATLAB讲义第2讲

MATLAB讲义第2讲
4
2013-7-27
2.2 命令窗口 (续)
>>who
Your variables are: circle_len area radius
>>whos
Name Size Bytes Class area 1x1 8 double array circle_len 1x1 8 double array radius 1x1 8 double array Grand total is 3 elements using 24 bytes
Matlab Language
20
பைடு நூலகம்
2013-7-27
2.1 数值表示、变量及表达式 (续)
Matlab预定义的变量
变量名 ans eps pi inf i或j NaN 意义 最近的计算结果的变量名 MATLAB定义的正的极小值=2.2204e-16 圆周率π ∞值,无限大 虚数单元,sqrt(-1) 非数,0/0、∞/ ∞
11
2.6 获取在线帮助
MATLAB提供的帮助信息有两类
简单纯文本帮助信息
help
lookfor(条件比较宽松)例:inverse
窗口式综合帮助信息(文字、公式、图形)
doc
helpwin
2013-7-27
Matlab Language
12
〘功能演示-1〙求方程的根
5 3 2 求方程 2 x 3 x 71 x 9 x 13 0 的全部根。
2013-7-27
Matlab Language
6
2.2 命令窗口 (续)
数值显示格式设置 缺省显示格式:简洁的短(short g,7位有效数字)格式 窗口命令及语法格式:format 显示格式关键字 如:format long %15位数字显示 常见通用命令 命令 clc clear who或whos dir cd type help或doc quit或exit

matlab讲义2

matlab讲义2
1 18/10/1012
例3:编写一个脚本文件将华氏温度转化为摄氏温度 5 c ( f 32) 9 新建一个 M 文件 f2cs.m,内容如下:
clear; % 清除当前工作空间中的变量 f=input('Please input Fahrenheit temperature:'); c=5*(f-32)/9;
1
18/10/1012
所谓M脚本文件是指: (1)该文件中的指令形式和前后位置,与解决 同一个问题时在指令窗中输入的那组指令没有 任何区别。 (2)MATLAB在运行这个脚本时,只是简单地从 文件中读取那一条条指令,送到MATLAB中去执 行。 (3)与在指令窗中直接运行指令一样,脚本文 件运行产生的变量都是驻留在MATLAB基本工作 空间中。 (4)文件扩展名是“.m”。
1 18/10/1012
3.程序的暂停 暂停程序的执行可以使用pause函数,其调 用格式为: pause(延迟秒数) 如果省略延迟时间,直接使用pause,则将 暂停程序,直到用户按任一键后程序继续 执行。 若要强行中止程序的运行可使用Ctrl+C命 令。
1
18/10/1012
选择结构 是根据给定的条件成立或不成立,分别执 行不同的语句。Matlab 用于实现选择结构的语句有 if 语句和 switch 语句。
1 18/10/1012
输出:
a= 11 12 13 14 15 16 17 18 b= 1 2 3 4 5 6
7
8
9 10
调用该命令文件时,不用输入参数,也没有 输出参数,文件自身建立需要的变量。当文 件执行完毕后,可以用 whos 查看工作空间中 的变量。这里会发现a,b,c仍然保留在工作空间 中。

第二章MATLAB基础

第二章MATLAB基础
0~ 1.8447e+19
-128~ 127
-32768~32767
-2147483648 ~2147483647 -9.2234e+18~9.2234
e+18
4
【例 2.1】通过转换函数创建整数类型 >> x=102; >> y=102.49; >> z=102.5;
>> xx=int32(x)
>> x=uint32(210);y=single(32.356);z=15.254;
>> xy=x*y
%错误的运算式
错误使用 .*
整数只能与相同类的整数或标量双精度值组合使用。 %系统提示的错误原因
>> xz=x*z
xz =
3203
10
>> whos Name Size x 1x1 xz 1x1 y 1x1 z 1x1
ceil(a)
向 不 小 于 a的最接近的整数 取整
ceil(4.3)结果为5 ceil(4.5)结果为5
7
数据类型参与的数学运算与MATLAB中默认的双精度 浮点运算不同。当两种相同的整数类型进行运算时,
结果仍然是这种整数类型;当一个整型数值与一个双
精度浮点类型数值进行数学运算时,计算结果是这种 整数类型,取整采用默认的四舍五入方式。
21
作为一种编程语言,MATLAB中为编程保留了一些 关 键 字 : break 、 case 、 catch 、 classdef 、 continue 、 else 、 elseif 、 end 、 for 、 function 、 global 、 if 、 otherwise、parfor、persistent、return、spmd、switch、 try、while,这些关键字在程序编辑窗口中会以蓝色 显示(可以自己改变),它们是不能作为变量名的,否 则会出现错误。

matlab-第二章

matlab-第二章

1,在一个MA TLAB命令中,6+7i和6+7*i有何区别?i和I有何区别?第一个i代表一个变量,6+7i是一个函数,第二个代表虚数,6是实部,7代表虚步.I只代表变量.2,.设A和B是两个同大小的矩阵,试分析A*B和A.*B、A./B和B.\A、A/B和B/A的区别?如果A和B是两个标量数据,结论又如何?A *B是矩阵相乘,A.*B表示A和B单个元素之间对应相乘。

A./B和B.\A值相等,是一样的。

A/B等效于B的逆右乘A的矩阵,B\A等效于B矩阵逆左乘A矩阵。

如果A和B是两个标量数据,结论是都没有区别。

3,写出完成下列操作的命令。

(1)删除矩阵A的第7号元素A(7)=[](2)将向量t的0元素用机器零来代替t(find(t==0))=eps(3)将含有12个元素的向量x转换成3*4矩阵newA=reshape(A,3,4)(4) 求一个字符串的ASCIIch=['a b c';'1 2 3'];abs ch(5) 产生和A同样大小的幺矩阵ones(size(A))(6) 从矩阵A提取主对角线元素,并以这些元素构成对角阵B。

A=[1 2 3;4 5 6;7 8 9];D=diag(A)B=diag([1,5,9])4, .要生产均值为3,方差为1的500个正态分布的随机序列,写出相应的表达式y=3+sqrt(1)*randn(500)5,(1)主对角元素1 1 5 9上三角矩阵1 -1 2 30 1 -4 20 0 5 20 0 0 9下三角矩阵1 0 0 05 1 0 03 0 5 011 15 0 9逆矩阵-0.1758 0.1641 0.2016 -0.0227-0.1055 -0.1016 -0.0391 0.0664-0.0508 -0.0859 0.1516 0.00230.3906 -0.0313 -0.1813 0.0281行列式的值1280秩4范数A1=norm(A,1)=20 A2=norm(A)= 21.3005 A3=norm(A,inf)=35条件数A1=cond(A,1)= 14.4531 A2=cond(A,2)= 11.1739 A3=cond(A,inf)= 22.0938迹16(2)主对角元素0.43 4上三角矩阵0.4300 43.0000 2.00000 4.0000 21.0000下三角矩阵0.4300 0 0-8.9000 4.0000 0逆矩阵0.0022 -0.01750.0234 -0.0017-0.0035 0.0405行列式的值秩2范数B1=norm(B,1)= 47 B2=norm(B)= 43.4271 B3=norm(B,inf)= 45.4300 条件数B2=cond(B,2)= 1.9354迹4.43006,all(A)=0any(A)=1isnan(A)= 0 1 0 0 0 0 0isinf(A)= 0 0 1 1 0 0 0isfinite(A)= 1 0 0 0 1 1 1。

第2章MATLAB的基本语法课件

第2章MATLAB的基本语法课件

handmard
Handmard矩 rosser 阵
hankel hilb invhilb
Hankel矩阵 toeplize Hilbert矩阵 vander
Hilbert逆矩 wilkinson 阵
魔方矩阵
Pascal矩阵
经典的对称 特征值测试 矩阵 Toeplize矩阵
Vanderm阵
此外,常用的函数还有reshape(A,m,n),它在 矩阵总元素保持不变的前提下,将矩阵A重新 排成m×n的二维矩阵。
4. 建立大矩阵 大矩阵可由方括号中的小矩阵建立起来。 例如
A=[1 2 3;4 5 6;7 8 9]; C=[A,eye(size(A)); ones(size(A)),A]
C=
3. 内存变量文件 ❖利用MAT文件(.mat)可以把当前MATLAB
工作空间中的一些有用变量长久地保留下 来。
❖MAT文件的生成和装入由save和load命令 来完成。常用格式为:
save 文件名 [变量名表] [-append][-ascii]
load 文件名 [变量名表] [-ascii]
2.3 MATLAB矩阵
• 数据输出时用户可以用format命令设置或改 变 数 据 输 出 格 式 。 format 命 令 的 格 式 为 : format 格式符
• 注意,format命令只影响数据输出格式,而 不影响数据的计算和存储。
2.2.4 预定义变量
在MATLAB工作空间中,还驻留几个由 系统本身定义的变量。它们有特定的含 义,在使用时,应尽量避免对这些变量 重新赋值。
❖ 变量的元素用圆括号“( )”中的数字 (下标)表示。一维矩阵(数组)中的
元素用一个下标表示;二维矩阵用两个 下标表示,以逗号分开
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章 序列的付氏变换(DTFT )和Z 变换一、序列的DTFT :X (e jw )序列x(n)的付氏变换如下:∑+∞∞--=n j j e n x e X ωω)()( ∞≤≤∞-ω ωπωππωd e e X n x n j j ⎰-=)(21)(因为MATLAB 无法计算连续变量w,只能在πωπ<≤-(或考虑对称性,在0<≤-ωπ)范围内,把w 赋值为很密的、长度很长的向量来近似连续变量。

通常最简单的就是赋以K 个等间隔的值: Kk d k πωω2=⋅= 1:0-=K k 它表示把基本数字频率的范围π2均分成K 份后,每一份的大小。

则频率向量表示为w=[w1,w2,…,wk]=k ∙dw,序列的位置向量为n=[n1,n2,…,nN]则DTFT 的计算式可用一个向量与矩阵相乘的运算来实现:[X(w 1),X(w 2),…,X(w k )]=[x(n 1),x(n 2),…,x(n N )]⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡∙N k N N k k n j n j n j n j n j n j n j n j n j e e e e e e e e e ωωωωωωωωω 212222111211 =[x(n 1),x(n 2),…,x(n N )]∙w *jn T e又因为 (jn T *w)=jn T *kdw=j*dw*n ’*k 所以Xw=xn*exp(j*dw*n ’*k)例1:求有限长序列xn=[1 3 5 3 1],n=-1:3的DTFT,画出它在w=-8~8rad/s 范围内的频率特性,讨论其对称性。

再把xn 左右移动,讨论时移对DTFT 的影响。

解:根据DTFT 定义得ωωωωωω32353)()(j j f f n n j j e e e e e n x e X ---∞-∞=-++++==∑ 88≤≤-ω将w 在-8~8rad/s 之间分为1000份。

>> xn=[1 3 5 3 1];nx=-1:3;>> w=linspace(-8,8,1000);%设定频率向量¿>> Xw=xn*exp(-j*nx'*w);%用定义计算DTFT>>subplot(3,5,1);stem(nx,xn);axis([-2,6,0,6]);title('Ô-ʼÐòÁÐ');ylabel('xn');%画序列图>> subplot(3,5,2);plot(w,abs(Xw));title('·ù¶È');% 画幅频曲线 >> subplot(3,5,3);plot(w,angle(Xw));title('Ïà½Ç')% 画相频曲线 >> subplot(3,5,4);plot(w,real(Xw));title('ʵ²¿')% 画实频曲线 >> subplot(3,5,5);plot(w,imag(Xw));title('Ð鲿')% 画虚频曲线 >> nx_2=nx+2;%使xn 右移2位>> Xw_2=xn*exp(-j*nx_2'*w);>>subplot(3,5,6);stem(nx_2,xn);axis([-2,6,0,6]);ylabel('xn_2');title('ÓÒÒÆ2λ')>> subplot(3,5,7);plot(w,abs(Xw_2));>> subplot(3,5,8);plot(w,angle(Xw_2));>> subplot(3,5,9);plot(w,real(Xw_2));>> subplot(3,5,10);plot(w,imag(Xw_2));>> nx_1=nx-1;%使xn 左移1位>> Xw_1=xn*exp(-j*nx_1'*w);>>subplot(3,5,11);stem(nx_1,xn);axis([-2,6,0,6]);ylabel('xn_1');title('×óÒÆ1λ')>> subplot(3,5,12);plot(w,abs(Xw_1));>> subplot(3,5,13);plot(w,angle(Xw_1));>> subplot(3,5,14);plot(w,real(Xw_1));>> subplot(3,5,15);plot(w,imag(Xw_1));由上述结果得出以下结论:(1) 序列的DTFT 是连续函数。

(2) 序列的DTFT 是周期函数,周期为2pi 。

(3) 本题给出的是实序列,实序列的DTFT 具有对称性,幅频和实频偶对称;相频和虚频奇对称。

(4) 信号的时移不影响幅频特性,只影响相频。

MATLAB 工具箱中有计算DTFT 的专用函数freqz 。

它的调用方式为:[H,w]=freqz(b,a,N)其中用于计算DTFT 时,b ——输入序列xn,其向量限定为n=0:(length(b)-1)(要从0开始)。

a 取1;N ——是把πω<≤0分割的份数,计算的是天频率部分的特性。

若省略N ,默认值为512。

要计算全部正负频率特性的响应,则用[H,w]=freqz(b,a,N ,‘whole ‘)二、Z 变换的计算(1)两个序列的Z 变换例1:x1(n)=[2,3,4],ns1=0;x2(n)=[3 4 5 6],ns2=0;求两序列的Z 变换,及两序列的卷积y(n)及Y(z).由Z 变换的定义∑∞-∞=-=n n z n x z X )()(知, X1(z)=2z 0+3z -1+4z-2 X2(z)=3z0+4z -1+5z -2+6z -3∵y(n)=x1(n)*x2(n)∴Y(z)=X1(z)X2(z)∴Y(z)= (2z 0+3z -1+4z -2)(3z0+4z -1+5z -2+6z -3)=6+17z -1+34z -2+43z -3+38z -4+24z -5则,y(n)=[6 17 34 43 38 24]y(n)= x1(n)*x2(n)=conv(x1,x2)求卷积程序:>> x1=[2 3 4];nx1=0:2;x2=[3 4 5 6];nx2=0:3;>> y=conv(x1,x2)y =6 17 34 43 38 24即y(n)=[6 17 34 43 38 24]从而Y(z)==6+17z -1+34z -2+43z -3+38z -4+24z -5 由以上看出,两序列的卷积和它们的Z 变换的相乘结果是一致的。

(时域卷积定理)三、Z 反变换(1) 部分分式法MATLAB 的内部函数residuez 可计算离散系统的极点留数。

NN MM z a z a z b z b b z B z A z H ----++++++== 111101)()()( 调用格式:[r,p,C]=residuez(b,a).b ,a ――H (z )中,分子分母多项式以z -1的升幂排列的系数向量。

p ――极点向量,即分母的根r ――部分分式分解后,各极点所对应的留数A kC ――无穷项多项式系数向量,仅在M ≥N 时存在。

则+++-++-+-==----1111)2()1()(1)()2(1)2()1(1)1()()()(z C C zN p n r z p r z p r z B z A z H则Z 反变换为:y(n)=r(1)p(1)n u (n)+…+r(N)p(N)nu(n)+C(1)δ(n)+ C(2)δ(n-1)+… 若H(z)是系统函数,则其反变换h(n)就是它的单位脉冲响应,可用函数impz 来计算,其调用方式为:h=impz(b,a,L)其中,b,a ——H(z)的按z-1的升幂排列的分子分母系数向量;L ——待求脉冲序列h(n)的长度可用该命令来核对计算。

实例1:计算的)7.01()9.01(1)(121--+-=z z z X 反变换 先用函数poly 求出分母多项式的系数,再用residuez 求X (z )的极点和留数程序:>> b=1;a=poly([0.9,0.9,-0.7]);>> [r,p,C]=residuez(b,a)r =0.24610.56250.1914p =0.90000.9000-0.7000C =[]四、用Z 变换求系统输出(1)方法1:采用residuez 函数实例1:系统函数2112523)(---+--=z z z z H ,输入信号x=[2 3 4 5],用Z 变换求出输出y(n)。

解:∵Y (z )=H(z)·X(z)= 211252)(3---+-⋅-z z z X z =)()(z A z B ∴ B(z)是X (z )与-3z -1的卷积,用函数conv 可求得求出Y(z)后,用函数residuez 可求其反变换,即得y(n)。

>> x=[2 3 4 5];nsx=0;>> nfx=length(x)-1;>> b=-3;a=[2 -5 2];>> B=conv(-3,x);A=a;>> [r,p,k]=residuez(B,A)r =-10.250032.0000p =2.00000.5000k =-24.7500 -7.5000>> nf=input('nf');nf8>> n=0:nf;>> yd=k(1)*impseq(0,0,nf)+k(2)*impseq(1,0,nf) ;>> y=yi+yd >> subplot(1,2,1),stem([nsx:nfx],x);title('x'>> subplot(1,2,2),stem([0:nf],y);title('y'),line([0,10],[0,0]);(2)方法2:采用filter 函数若不需求出表达式,可用函数filter 来解。

相关文档
最新文档