——信号与系统补充课程MATLAB基础2课程安排MATLAB简介连续时间信号与系统离散时间信号与系统MATLAB实验内容MATLAB简介MATLAB基础知识MATLAB编程工具箱及Simulink仿真4内容MATLAB简介1MATLAB的工作环境MATLAB是什么MATLAB的帮助系统MATLAB是什么•Matlab=MatrixLaboratory=矩阵实验室•由MathWorks公司于1984年基于C语言开发的一套高性能的将数值计算、可视化和编程等功能集于一身的数学软件;•基本元素是没有维数限制的矩阵•数学表达式与运算规则符合通常的习惯,语法不严格•具有强大的数值计算•强大的数据可视化功能•具有丰富的程序扩展系统和工具箱(ToolBox)•强大的help功能6MATLAB工作环境命令窗口菜单和工具栏工作目录工作区间历史命令7MATLAB工作环境•菜单和工具栏•【File】•ImportData:用于向工作区间导入数据;•SaveWorkspaceAs:将工作区间的变量存储在某一文件中;•【View】•设置显示变量格式•【Graphic】•打开绘图工具•【Start】按钮•直接打开Matlab工具8MATLAB工作环境•工作区间和当前目录9MATLAB工作环境•历史命令和命令窗口10MATLAB的通用命令命令说明命令说明cd显示或改变当前工作目录home将光标移动到命令窗口的左上角dir/ls显示当前目录或指定目录下的文件disp显示变量或文字内容clc清除工作窗口中的所有内容load加载指定文件的变量clear清理内存变量exit/quit退出matlabclf清除图形窗口save保存内存变量到指定目录•常用命令11MATLAB的通用命令键盘按键说明键盘按键说明↑↓调用上一行/下一行esc清除当前输入行←→光标左移/右移一个字符del删除光标处的字符Ctrl+←→光标左移/右移一个单词backspace删除光标前的字符Home/end光标置于当前行开头/末尾Alt+backspace恢复上一次的删除•常用按键MATLAB帮助系统•命令窗口查询帮助help函数名13MATLAB帮助系统•联机帮助系统Search/Index查询某一函数Demo演示程序,快速学习工具箱Contents学习某一主题14内容MATLAB基础知识2矩阵符号绘图函数MATALB基础知识:矩阵•MATLAB中所有数据均以二维矩阵或多维矩阵形式存储单个数据,用1*1矩阵表示——标量一组数据,用1*n矩阵表述——向量支持多维矩阵——多维数组16•矩阵的构造-简单矩阵矩阵的元素放在矩阵构造符[]内,使用空格或逗号隔开;如果矩阵是多行的,行与行之间用分号或Enter键隔开。MATALB基础知识:矩阵•矩阵的构造-特殊矩阵函数名函数用途调用格式zeros全0矩阵A=zeros(n)产生n*n的0A=zeros(m,n)产生m*n的0ones全1矩阵A=ones(n)A=ones(m,n)eye单位矩阵(主对角线上元素为1,其他元素为0)A=eye(n)A=eye(m,n)diag把向量转化为对角矩阵X=diag(v,k)把向量v转化成为一个对角矩阵X=diag(v)把向量v转化成为一个主对角矩阵rand0~1之间均匀分布的随机数A=rand(n)A=rand(m,n)randn均值为0,方差为1高斯分布的随机数A=randn(n)A=randn(m,n)randperm整数1~n的随机排列A=randperm(n)MATALB基础知识:矩阵18•矩阵的构造-向量start:step:end•start:起始值,step:步长(默认为1,可为负值),end:终止值linespace(start,end,num)函数•start:起始值,end:终止值,num等间距点数logspace(start,end,num)函数MATALB基础知识:矩阵•矩阵元素访问单个元素•A(m,n):提取第m行,第n列元素多个元素•A(:,n):提取第n列元素•A(m,:):提取第m行元素•A(m1:m2,n1:n2):提取m1~m2行和n1~n2列的所有元素•A(:):得到一个长列矢量,其元素按矩阵的列进行排列MATALB基础知识:矩阵•矩阵元素访问•例:A=[1,2,3•4,5,6];A(:)ans=142536A(:,2)ans=25A(1:2,2:3)ans=2356A(2,1)ans=4A(2,:)ans=456注意:MATLAB中矩阵下标从1开始,而不是从0开始MATALB基础知识:矩阵•矩阵信息的获取d=size(X)[m,n]=size(X)M=size(X,dim)返回矩阵大小信息,以向量方式存储返回矩阵的行列数m,n返回某一维的元素个数N=length(X)矩阵最长方向的长度=max(size(X))N=numel(X)矩阵元素的个数C=class(obj)返回输入数据的数据类型K=isa(obj,‘class_name’)判断输入数据是否为指定数据类型Tf=isinteger(A)判断输入数据是否为整数Tf=isempty(A)测试矩阵是否为空矩阵If=isscalar(A)测试矩阵是否为标量If=isvector(A)测试矩阵是否矢量MATALB基础知识:矩阵22•矩阵信息的获取例:求矩阵A的元素平均值Mean=sum(A(:))/numel(A)MATALB基础知识:矩阵23•改变矩阵矩阵扩展:•在原矩阵中一个不存在的地址位置上赋值,则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。•C=[AB]水平方向和并矩阵;•C=[A;B]竖直方向和并矩阵;消除子块:如果将矩阵的子块赋值为空矩阵[],则相当于消除了相应的矩阵子块。改变结构:•B=reshape(A,m,n)把矩阵变为m*n大小MATALB基础知识:矩阵•改变矩阵MATALB基础知识:矩阵例:A=[123456];B=[234567];A(3,2)=7A=[123456070]A(2,:)=[]A=[123]C=[A;B];C=[123456234567]数学运算符-算数运算符+矩阵加法-矩阵减法*矩阵乘法.*对应元素相乘/矩阵右除方程X*A=B的解为A/B./矩阵A除以矩阵B的对应元素\矩阵左除方程A*X=B的解为A\B.\矩阵B除以矩阵A的对应元素^矩阵幂.^元素的幂A‘矩阵转置A.’共轭转置举例A=[1+i2-2i;-3+3i-4-4i]B=A’B=1-i-3-3i2+2i-4+4iC=A.’C=1+i-3+3i2-2i-4-4iMATALB基础知识:符号26MATALB基础知识:符号•数学运算符-关系运算符、=、、=、==、~=若关系式成立,结果为1,否则结果为0;•逻辑运算符元素的比较:&、|、~、xor比特的比较:•bitand:位与函数•bitor:位或函数•bitcmp:补码•bitxor:位异或函数27MATALB基础知识:符号标点符号:定义向量%注释;矩阵区分行取消显示运行结果!调用操作系统函数,矩阵区分列函数参数分隔符=赋值标记()指定运算优先级‘’字符串标识[]定义矩阵.小数点对象访问域{}构造单元数组…续行符号例如:S=1-12+13+4+…9-4-18;28MATALB基础知识:函数矩阵元素的数学函数sin正弦nthroot开n次方sind正弦,输入以度为单位round四舍五入asin矩阵的秩floor像负无穷方向取整sinh双曲正切ceil向正无穷方向取整cos余弦mod求余tan正切sign符号函数cot余割abs绝对值,复数取模exp指数函数angle复数相角log自然对数(以e为底)complex构造复数log10常用对数(以10为底)conj复数的共轭log2以2为底的对数real复数的实部sqrt开平方根imag复数的虚部MATALB基础知识:函数•信号与系统中用到的一些函数conv(A,B):得到A与B的卷积结果。时间响应•impluse连续系统的脉冲响应;•dimpluse离散系统的脉冲响应;•step连续系统的单位阶跃响应;•dstep离散系统的单位阶跃响应…使用filter函数求解差分方程。MATALB基础知识:函数•信号与系统中用到的一些函数传递函数的描述•roots(P):将多项式表示法表示为零极点形式。•poly(r):将零极点形式表示法表示为多项式。线性变换函数:•fourier(F,w,z):得到fourier变换的结果。•laplace(F):得到laplace变换的结果。•czt(X,M,W,A):得到z变换的结果,z=A*W.^(-(0:M-1))。31MATALB基础知识:函数其他常用函数库数据分析函数库(datafun)矩阵的分解与变换(matfun)多项式函数库(polyfun)函数功能和数值积分函数库(funfun)字符串函数库(strfun)稀疏矩阵函数库(sparfun)图形界面函数库(Guitool)请同学们自己查阅帮助系统学习!MATALB基础知识:绘图•MATLAB提供了丰富的绘图功能,实现数据的可视化分析,并且还对绘图提供了各种修饰方法,使图形更加美观、可读。33•plot(x,y,’属性’):以x为横坐标,y为纵坐标作图.-实线.点:点线。圆-.点划线*星号--虚线s方形r红色D菱形g绿色v上三角b蓝色^下三角k黑色MATALB基础知识:绘图基本作图-二维图形MATALB基础知识:绘图•figure:选择图像figure(1);figure(2);…;figure(n)打开不同的图形窗口,以便绘制不同的图形基本作图-图形窗口创建举例:t=[0:pi/20:9*pi];f=sin(t);figure(1)plot(t,f,'r:*')Matlab基础知识:绘图Matlab基础知识:绘图•ezplot(f,[xmin,xmax,ymin,ymax]):绘制f(x,y)=0在区间xminxxmax,yminyymax内的图形;•plot3(x,y,z,’属性’):绘制三维曲线•mesh(X,Y,Z):绘制三维曲面ezplot('x^2+y^2-4',[-3,3,-3,3])基本作图-其他常用作图函数t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)Matlab基础知识:绘图•[n,xout]=hist(Y,num):用于绘制数据分布直方图,返回向量n与包含频率计数与条形的位置向量xout;•bar(xout,n):条形图,画出条形直方图;•scatter:散点图•stem:火柴杆图基本作图-其他常用作图函数38Matlab基础知识:绘图设定对数坐标semilogx:x轴为对数坐标,y轴为线性坐标semilogy:y轴为对数坐标,x轴为线性坐标设定轴的范围axis([xminxmaxyminymax])axis(‘equal’):将x坐标轴和y坐标轴的单位刻度调整为一样设定网格•gridon:在所画出的图形坐标中加入栅格•gridoff:除去图形坐标中的栅格图形修饰-坐标轴Matlab基础知识:绘图•图形修饰-文字标示text(x,y,’字符串’)在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串gtext(‘字符串’)利用鼠标在图形的某一位置标示字符串title(‘字符串’)在所画图形的最上端显示说明该图形标题的字符串xlabel(‘字符串’),ylabel(‘字符串’)设置x,y坐标轴的名称。legend(‘字符串1’,‘字符串2’,…,‘字符串n’)在屏幕上开启一个小视窗,然后依据绘图命令的先后用对应的字符串区分图形上的线40MATALB基础知识:绘图•holdon:当前图形保持不变,同时允许在这个坐标内绘制另外一个图形•holdoff:使新图覆盖旧的图形图形修饰-画多条曲线在同一图中-图形保持在不同图中-分割窗口