Matlab实验报告院系名称:信息科学与工程学院专业班级:通信工程1303指导老师:陈科文,支国明,张金焕,周扬学生姓名:学号:目录实验一熟悉MATLAB环境 (3)实验二数值数组创建、应用及可视化 (7)实验三字符串数组的使用、简单脚本文件和函数的编写 (12)实验四数据可视化方法 (22)实验一一、实验目的1 .熟悉MATLAB 主界面,并学会简单的菜单操作;2 .学会简单的矩阵输入与信号输入;3 .掌握部分绘图函数。
二、实验内容及要求1.用户工作目录和当前目录的建立和设置;2.熟悉简单的矩阵输入;3.常用基本命令的使用;4.基本序列运算;三、实验步骤及结果测试1.用户工作目录和当前目录的建立和设置2.熟悉简单的矩阵输入四、实验体会及心得这是我第一次做Matlab实验,一打开页面就有很多地方都不明白,因为页面大部分是英文,由于上课时对Matlab操作页面还有一些记忆,感觉还可以:本次试验是我对Matlab这门课有了一定的了解,对矩阵在Matlab中的运用也有了初步的认识。
实验二一、 实验目的1 .掌握二维数组的创建、寻访,区分数组运算与矩阵运算的区别;2 .掌握标准数组生成函数和数组构造技法;3 .进一步熟悉 M 脚本文件编写的方法和技巧。
二、实验内容及要求1.数组的创建和寻访 ;2.编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在21 及22处削顶。
三、实验步骤及结果测试仿照问题 1 中方法找出数组⎥⎦⎤⎢⎣⎡----=5311342024A 中所有绝对值大于 3 的元素。
程序如下图:运行指令 rand(‘state ’,11),A=rand(3,10000);B=(A>0.5);C=2*B -1;首先预测( C*C’)/100 的运行结果,然后再在机器上验证。
(本方法提供了产生通信等仿真中常需若干独立的双随机码的方法原型。
)A :B :C :编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在21 及22处削顶。
四、实验体会及心得在用matlab解决绘图问题时候,一定要有自己的想法,利用数学思想再利用matlab工具,设置函数图像的具体属性时,要注意语句在程序中的位置。
实验三一、 实验目的1 .掌握字符串数组的创建和构造方法及常用字符串函数的使用;2 .熟练掌握 MATLAB 控制流的使用方法;3 .熟悉 M 脚本文件、函数文件的编写方法和技巧。
二、实验内容及要求1.串数组的创建和寻访;2.脚本文件实现()π30,3cos 14.0≤≤-=t t e y t ,并在图上标出图名和极大值点坐标;3.编程实现分别用 for 或 while 循环语句计算: 63263022212++++=∑==Λi i K的程序,并给出运行结果。
此外,实现一种避免使用循环的的计算程序; 4 .函数文件。
三、实验步骤及结果测试1.2.3.4.5.6.四、实验体会及心得Matlab作为一个强大的工具,方便快捷,操作高效,我们要熟练利用并且掌握基本语句输入,一定要注意细节。
实验三一、 实验目的1 .掌握曲线绘制的基本技法和指令,会使用线形、色彩、数据点标记表现不同数据的特征,掌握生成和运用标识注释图形;2 .进一步掌握函数编写及数据可视化方法。
二、实验内容及要求1.仿照运行,体会数据可视化方法。
(1) .已知12,,1,0Λ=n ,()16--n y ,运行下面程序,体会离散数据可视化方法。
说明:plot 和stem 指令均可以实现离散数据的可视化,但通常plot 更常用于连续函数中特殊点的标记;而stem 广泛运行与数字信号处理中离散点的图示。
用户在运行上面例程时会发现在命令窗口出现警告:Warning: Divide by zero !即警告程序中出现非零数除以0的指令。
MATLAB 对于这种情况并不中止程序只是给该项赋值为inf 以做标记。
(2).下面时用图形表示连续调制波形()()t t y 9sin sin =,仿照运行,分析表现形式不同的原因。
三、实验步骤及结果测试1.2cleart1=(0:11)/11*pi; y1=sin(t1).*sin(9*t1);t2=(0:100)/100*pi; y2=sin(t2).*sin(9*t2);subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(1)'); subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图(2)'); subplot(2,2,3),plot(t1,y1,t1,y1,'r.') axis([0,pi,-1,1]),title('子图(3)'); subplot(2,2,4),plot(t2,y2) axis([0,pi,-1,1]),title('子图(4)')3代码:x=0:0.0001:pi;y=sin(x).*sin(9*x);y1=sin(x);y2=-sin(x);x1=0:pi/9:pi;y3=0;plot(x,y,x,y1,'r:',x,y2,'r:',x1,y3,'bo'); axis([0,pi,-1,1]);M文件function [y,n]=sigadd(x1,n1,x2,n2)n=(min(n1(1),n2(1)):max(n1(end),n2(end)));y1=zeros(1,length(n));y2=y1;y1(find((n>=n1(1))&(n<=n1(end))==1))=x1;y2(find((n>=n2(1))&(n<=n2(end))==1))=x2;y=y1+y2;end四、实验体会及心得在用matlab解决绘图问题时候,一定要有自己的想法,利用数学思想再利用matlab工具.设置函数图像的具体属性时,要注意语句在程序中的位置,一定要注意细节,不要因为小错误,导致绘图出错。
实验四数据可视化方法[实验目的]1 .掌握曲线绘制的基本技法和指令,会使用线形、色彩、数据点标记表现不同数据的特征,掌握生成和运用标识注释图形。
2 .进一步掌握函数编写及数据可视化方法。
[实验原理]MATLAB 提供了相当强大的可视化指令,通过这些指令,我们可以非常简单地实现数据的可视化。
首先我们来看离散数据和离散函数的可视化方法。
对于离散实函数,当以递增(或递减)次序取值时,根据函数关系可以求得同样数目的,当把这两组向量用直角坐标中的点次序图示时,就实现了离散函数的可视化。
当然这种图形上的离散序列所反映的只是某确定的有限区间内的函数关系,不能表现无限区间上的函数关系。
通常我们可以采用plot或者stem来实现。
只是需要注意的是使用plot时,需要使用星号或者点等标识来表示数据点,比如plot(xn ,yn ,’r*’,’MarkerSize’,20),就表示用字号20 的红色星点来标识数据点, 此时为了便于观察,通常随后加上一条语句“grid on”,即给图形加上坐标方格。
而采用stem 标识数据点的格式是stem(xn ,yn ) 。
连续函数的可视化与离散函数可视化类似,也必须先在一组离散自变量上计算相应的函数值,并把这一组“数据点”用点图示。
但这些离散的点不能表现函数的连续性。
为了进一步表示离散点之间的函数函数情况,MATLAB有两种常用处理方法:一是对区间进行更细的分割,计算更多的点,去近似表现函数的连续变化;或者把两点用直线连接,近似表现两点间的(一般为非线性的)函数形状。
但要注意,倘若自变量的采样点不足够多,则无论哪种方法都不能真实地反映原函数。
对于二维数据,常用指令仍旧是plot。
对于离散数据,plot指令默认处理方法是:自动地把这些离散数据用直线(即采用线性插值)连接,使之成为连续曲线。
对于三维图形的表示,通常有plot3等指令。
说明:步骤1、3是最基本的绘图步骤,一般来说,由这两步所画出的图形已经具备足够的表现力。
至于其他步骤,并不完全必需。
用户可根据自己需要改变上面绘图步骤,并不必严格按照执行。
步骤2一般在图形较多情况下使用,此时需要指定图形窗、指定子图。
步骤8涉及图柄操作,需要对图形对象进行属性设置,较为复杂。
MATLAB 提供了交互式图形编辑功能,可方便地对图形精细修饰。
plot 等绘图指令的典型调用格式为:plot(t,y,’s’) 。
其中s是用来指定线型、色彩、数据点形的选项字符串。
S的合法取值如下所示,格式形如’r+’。
如果缺省,此时线型、色彩、数据点形将由MATLAB默认设置确定。
plot进一步的使用可参看帮助文档。
s可用来指定的线形分别有:“-”实线,“:”虚线,“-.”点划线,“--”双划线。
s可用来指定的色彩分别有:b-蓝,g-绿,r -红,c-青,y-黄,w-白,k-黑。
s可用来指定的数据点形有:“.”实心黑点,“+”十字符,“^”朝上三角符,“v”朝下三角符,“d”菱形符,“p”五角星符等。
常用的坐标控制指令axis使用是最多的,比如axis([x1 ,x2 ,y1 ,y2])可人工设定坐标范围,axis off可取消轴背景,axis equal横纵轴采用等长刻度等。
其他使用见帮助。
需要特别指出的是,当遇到在已经存在的图上再绘制一条或多条曲线,可使用hold on 指令,可保持当前轴及图形保持不被刷新,并准备接收此后绘制的新曲线,hold off 则取消此功能。
对于想画多个独立的图形,则会用到figure(n)指令,这里n为整数,可顺序从1向后排。
如果想在特定图形中布置几幅独立的子图,则会用到subplot(m,n,k) ,即在(m×n)幅子图中的第k幅成为当前图;subplot(‘position’,[left botton width height]) ,表示在指定位置上开辟子图,并成为当前图。
使用clf指令可清除图形窗的内容。
另外MATLAB还提供了ginput、gtext、legend等交换指令。
[x,y]=ginput(n),可用鼠标从二维图形上获取n个点的数据坐标(x,y),该指令只适用于二维图形, 在数值优化、工程设计中十分有用。
通常在使用前先对图进行局部放大处理。
[实验内容]一.仿照运行,体会数据可视化方法。
1 .已知,,运行下面程序,体会离散数据可视化方法。
说明:plot和stem指令均可以实现离散数据的可视化,但通常plot更常用于连续函数中特殊点的标记;而stem广泛运行与数字信号处理中离散点的图示。