第1次 MATLAB绘图及简单编程
- 格式:doc
- 大小:1.31 MB
- 文档页数:8
实验一Matlab使用方法和程序设计一、实验目的1、掌握Matlab软件使用的基本方法;2、熟悉Matlab的数据表示、基本运算和程序控制语句3、熟悉Matlab绘图命令及基本绘图控制4、熟悉Matlab程序设计的基本方法二、实验内容:1、帮助命令使用help命令,查找sqrt(开方)函数的使用方法;解:sqrtSquare rootSyntaxB = sqrt(X)DescriptionB = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results.RemarksSee sqrtm for the matrix square root.Examplessqrt((-2:2)')ans =0 + 1.4142i0 + 1.0000i1.00001.41422、矩阵运算(1)矩阵的乘法已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B解:A=[1 2;3 4 ];B=[5 5;7 8 ];A^2*B(2)矩阵除法已知A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];A\B,A/B解:A=[1 2 3;4 5 6;7 8 9 ];B=[1 0 0;0 2 0;0 0 3 ];A\B,A/B(3)矩阵的转置及共轭转置已知A=[5+i,2-i,1;6*i,4,9-i];求A.', A'解:A=[5+1i,2-1i,1;6*1i,4,9-1i ];A1=A.',A2=A'(4)使用冒号表达式选出指定元素已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3列前2个元素;A 中所有列第2,3行的元素;方括号[]解:A=[1 2 3;4 5 6;7 8 9 ];B=A([1,2],[3]),C=A(2:end, : )用magic 函数生成一个4阶魔术矩阵,删除该矩阵的第四列3、多项式(1)求多项式42)(3--=x x x p 的根解:A=[1 0 -2 -4];B=roots(A)(2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征多项式;解:A=[1.2 3 5 .9 ; 5 1.7 5 6 ;3 9 0 1 ;1 2 3 4];A=poly(A);A=poly2sym(A)把矩阵A作为未知数代入到多项式中;4、基本绘图命令(1)绘制余弦曲线y=cos(t),t∈[0,2π]解:t=0:.1:2*pi;y=cos(t);plot(t,y),grid(2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]t=0:.1:2*pi;y1=cos(t-0.25);y2=sin(t-0.25);plot(t,y1,t,y2)grid5、基本绘图控制绘制[0,4π]区间上的x1=10sint曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)坐标轴控制:显示范围、刻度线、比例、网络线(3)标注控制:坐标轴名称、标题、相应文本;t=0:.01:4*pi;y=10*sin(t);plot(t,y,'-.',t,y,'r')grid6、基本程序设计(1)编写命令文件:计算1+2+…+n<2000时的最大n值;解法1:s=0;i=0;while(s<2000) i=i+1;s=s+i; ends=s-i,i=i-1解法2:s=0;for i=1:1000; s=s+i;if(s>2000) ,break;endends=s-i,i=i-1(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。
信号与系统MATLAB第一次实验报告一、实验目的1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。
2.学会运用MATLAB表示常用连续时间信号的方法3.观察并熟悉一些信号的波形和特性。
4.学会运用MATLAB进行连续信号时移、反折和尺度变换。
5.学会运用MATLAB进行连续时间微分、积分运算。
6.学会运用MATLAB进行连续信号相加、相乘运算。
7.学会运用MATLAB进行连续信号的奇偶分解。
二、实验任务将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。
三、实验内容1.MATLAB软件基本运算入门。
1). MATLAB软件的数值计算:算数运算向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。
2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。
矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。
2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。
3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。
举例:计算一个函数并绘制出在对应区间上对应的值。
2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”2.MATLAB软件简单二维图形绘制1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)6).输出:grid on举例1:举例2:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。
详尽全⾯的matlab绘图教程Matlab绘图强⼤的绘图功能是Matlab的特点之⼀,Matlab提供了⼀系列的绘图函数,⽤户不需要过多的考虑绘图的细节,只需要给出⼀些基本参数就能得到所需图形,这类函数称为⾼层绘图函数。
此外,Matlab还提供了直接对图形句柄进⾏操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、⽂字等)看做⼀个独⽴的对象,系统给每个对象分配⼀个句柄,可以通过句柄对该图形元素进⾏操作,⽽不影响其他部分。
本章介绍绘制⼆维和三维图形的⾼层绘图函数以及其他图形控制函数的使⽤⽅法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
⼀.⼆维绘图⼆维图形是将平⾯坐标上的数据点连接起来的平⾯图形。
可以采⽤不同的坐标系,如直⾓坐标、对数坐标、极坐标等。
⼆维图形的绘制是其他绘图操作的基础。
⼀.绘制⼆维曲线的基本函数在Matlab中,最基本⽽且应⽤最为⼴泛的绘图函数为plot,利⽤它可以在⼆维平⾯上绘制出不同的曲线。
1. plot函数的基本⽤法plot函数⽤于绘制⼆维平⾯上的线性坐标曲线图,要提供⼀组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的⼆维曲线。
plot函数的应⽤格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 , 2pi]区间,绘制曲线程序如下:在命令窗⼝中输⼊以下命令>> x=0:pi/100:2*pi;>> y=2*exp(-0.5*x).*sin(2*pi*x);>> plot(x,y)程序执⾏后,打开⼀个图形窗⼝,在其中绘制出如下曲线注意:指数函数和正弦函数之间要⽤点乘运算,因为⼆者是向量。
例52 绘制曲线这是以参数形式给出的曲线⽅程,只要给定参数向量,再分别求出x,y向量即可输出曲线:>> t=-pi:pi/100:pi;>> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>> plot(x,y)程序执⾏后,打开⼀个图形窗⼝,在其中绘制出如下曲线以上提到plot函数的⾃变量x,y为长度相同的向量,这是最常见、最基本的⽤法。
(完整版)Matlab⼊门教程第1章MATLAB操作基础1.1 MATLAB概述1.1.2 MATLAB的主要功能1.数值计算MATLAB以矩阵作为数据操作的基本单位,还提供了⼗分丰富的数值计算函数。
2.绘图功能可以绘制⼆维、三维图形,还可以绘制特殊图形(与统计有关的图,例如:区域图、直⽅图、饼图、柱状图等)。
3.编程语⾔MATLAB具有程序结构控制、函数调⽤、数据结构、输⼊输出、⾯向对象等程序语⾔特征,⽽且简单易学、编程效率⾼。
4.MATLAB⼯具箱MATLAB包含两部分内容:基本部分和各种可选的⼯具箱。
MATLAB⼯具箱分为两⼤类:功能性⼯具箱和学科性⼯具箱。
1.1.3MATLAB语⾔的特点语⾔简洁紧凑,使⽤⽅便灵活,易学易⽤。
例如:A=[1 2 3;4 5 6;7 8 9]⼀条语句实现了对3x3矩阵的输⼊。
语句功能强⼤,⼀条语句相当于其它语⾔的⼀个⼦程序,例如fft。
语句简单,内涵丰富。
同⼀个函数有不同的输⼊变量和输出变量,分别代表不同的含义。
Matlab既具有结构化的控制语句(if、for、while)⼜⽀持⾯向对象的程序设计。
⽅便的绘图功能。
包含功能强劲的⼯具箱。
易于扩展。
1.1.4 初识MATLAB例1-1 绘制正弦曲线和余弦曲线。
x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));例1-2 求⽅程3x4+7x3+9x2-23=0的全部根。
p=[3,7,9,0,-23]; %建⽴多项式系数向量x=roots(p) %求根例1-3 求积分quad('x.*log(1+x)',0,1)例1-4 求解线性⽅程组。
a=[2,-3,1;8,3,2;45,1,-9];b=[4;2;17];x=inv(a)*b1.2 MATLAB的运⾏环境与安装1.2.1 MATLAB的运⾏环境硬件环境:(1) CPU(2) 内存(3) 硬盘(4) CD-ROM驱动器和⿏标软件环境:(1) Windows 98/NT/2000 或Windows XP(2) 其他软件根据需要选⽤1.2.2 MATLAB的安装运⾏系统的安装程序setup.exe,可以按照安装提⽰依次操作。
help plothelp axisa1=plot();hlod ona2=plot();legend([a1 a2],'图1 名',‘图2 名')hold offx1=-pi:pi/12:pi;x2=-pi:pi/12:pi;y1=sin(x1);y2=cos(x2);plot(x1,y1,x2,y2);axis([-2*pi 2*pi -2 2]);xlabel('x');ylabel('y');title('sin(x) & cos(x)');MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.这里主要介绍2 维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MATLAB 各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MATLAB 在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2.在MATLAB 下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB 通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MATLAB 函数gcf 获得;4. 在任何时刻, 只有唯一的一个窗口是当前的图形窗口( 活跃窗口);figure(h)----将句柄为h 的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure 新建;3)figure 命令打开,close 命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File 菜单中的Print 项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit 菜单中选择Properties 项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由MATLAB 函数gca 获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h 为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATLAB 自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax])重新设定;2)坐标轴控制:MATLAB 的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on 则显示坐标轴(缺省值).3)通常MATLAB 的坐标系是长方形,长宽比例大约是4:3,为了得到一个正方形的坐标系可用:axis square4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:axis equal第二节二维图形的绘制一. plot 函数plot 函数是最基本的绘图函数,其基本的调用格式为:1.plot(y)------绘制向量y 对应于其元素序数的二维曲线图,如果y 为复数向量,则绘制虚部对于实部的二维曲线图.例:绘制单矢量曲线图.y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(y)由于y 矢量有10 个元素,x 坐标自动定义为[1 2 3 4 5 6 7 8 9 10].2.plot(x,y)------绘制由x,y 所确定的曲线.1)x,y 是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x 为横坐标,y 为纵坐标的图形.如:画正弦曲线:t=0:0.1:2*pi;y=sin(t);plot(t,y)2)当plot(x,y)中,x 是向量,y 是矩阵时,则绘制y 矩阵中各行或列对应于向量x的曲线.如果y 阵中行的长度与x 向量的长度相同,则以y 的行数据作为一组绘图数据;如果y 阵中列的长度与x 向量的长度相同,则以y 的列数据作为一组绘图数据;如果y 阵中行,列均与x 向量的长度相同,则以y 的每列数据作为一组绘图数据.例:下面的程序可同时绘出三条曲线.MATLAB 在绘制多条曲线时,会按照一定的规律自动变化每条曲线的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(2,:)=0.3*sin(x);plot(x,y)或者还可以这样用:x=0:pi/50:2*pi;y=[ sin(x); 0.6*sin(x); 0.3*sin(x)];plot(x,y)3) 如果x,y 是同样大小的矩阵,则plot(x,y)绘出y 中各列相应于x 中各列的图形.例:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(2,:));y(3,:)=0.3*sin(x(3,:));plot(x,y)x=x';y=y';figureplot(x,y)在这个例子中,x------3x101,y------3x101,所以第一个plot 按列画出101 条曲线,每条3 个点;而x'------101x3,y'------101x3,所以第二个plot 按列画出3 条曲线,每条101 个点.3.多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plot 格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB 在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项'r' 红色'm' 粉红'g' 绿色'c' 青色'b' 兰色'w' 白色'y' 黄色'k' 黑色各种线型属性选项'-' 实线'--' 虚线':' 点线'-.' 点划线各种标记点属性选项'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond 用菱形绘制各数据点'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的'+'号绘制曲线.注意:1)表示属性的符号必须放在同一个字符串中;2)可同时指定2~3 个属性;3)与先后顺序无关;4)指定的属性中,同一种属性不能有两个以上.例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')该程序还可以按下面的方式写:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r')hold onplot(t,y2, ':g')plot(t,y3, '*b')hold off注:在MATLAB 中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了hold on 后,可以保持坐标系中已绘出的图形.还可以进一步设置包括线的宽度(LineWidth), 标记点的边缘颜色(MarkerEdgeColor),填充颜色(MarkerFaceColor)及标记点的大小(MarkerSize)等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWidth',2,... %设置线的宽度为2'MarkerEdgeColor','k',... %设置标记点边缘颜色为黑色'MarkerFaceColor','y',... %设置标记点填充颜色为黄色'MarkerSize',10) %设置标记点的尺寸为104.双Y 轴绘图:plotyy()函数.其调用格式为: plotyy(x1,y1,x2,y2)------绘制由x1,y1 和x2,y2 确定的两组曲线,其中x1,y1 的坐标轴在图形窗口的左侧,x2,y2 的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'function1','function2')------功能同上,function 是指那些绘图函数如:plot,semilogx,loglog 等.例如:在一个图形窗口中绘制双Y 轴曲线.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')stem:绘制stem 形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y 轴坐标对应的是plot 形式的曲线,右边的Y 坐标对应的是stem 形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy 和loglog 函数.1)semilogx( )------绘制以X 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogx(x,y,'属性选项')其中属性选项同plot 函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2)semilogy( )------绘制以Y 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.3)loglog( )------ 绘制X,Y 轴均为对数坐标轴的图形.其调用格式为:loglog(x,y,'属性选项')该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplot(221), semilogx(x,y);subplot(222), semilogy(x,y);subplot(223), loglog(x,y);4)MATLAB 还提供了一个实用的函数:logspace( )函数,可按对数等间距地分布来产生一个向量,其调用格式为:x=logspace(x1,x2,n)这里,x1 表示向量的起点;x2 表示向量的终点;n 表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用polar( )函数.其调用格式如下:polar(theta, rho,'属性选项')------theta:角度向量,rho:幅值向量,属性内容与plot 函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ, ],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)四.绘制多个子图:subplot( )函数MATLAB 允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm 个部分.分割图形窗口用subplot 函数来实现,其调用格式为:subplot(n,m,k)或subplot(nmk)------n,m 分别表示将窗口分割的行数和列数,k 表示要画图部分的代号,表示第几个图形,nmk 三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4 个部分,可以这样写:subplot(2,2,1),plot(……)subplot(2,2,2),……subplot(2,2,3),……subplot(2,2,4),……注:subplot 函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB 提供了一些特殊的函数修饰画出的图形,这些函数如下: 1)坐标轴的标题:title 函数其调用格式为:title('字符串')------字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel 和ylabel 函数格式:xlabel('字符串')ylabel('字符串')如:xlabel('This is my X axis') ylabel('My Y axis')3)图形说明文字:text 和gtext 函数A.text 函数:按指定位置在坐标系中写出说明文字.格式为:text(x1, y1, '字符串', '选项') x1,y1 为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1 的坐标单位,如没有选项,则x1,y1 的坐标单位和图中一致;如选项为'sc', 则x1,y1 表示规范化窗口的相对坐标,其范围为0到1.如:text(1,2, '正弦曲线')B.gtext 函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线,移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext 参数中的字符串就标注在该位置上.4)给图形加网格:grid 函数在调用时直接写grid 即可.上面的函数的应用实例:例:在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid,axis([0 2*pi -1 1])xlabel('0 leq itt rm leq pi','FontSize',16)ylabel('sin(t)','FontSize',20)title('正弦函数图形','FontName','隶书' ,'FontSize',20) text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707','FontSize',16)text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707rightarrow',... 'FontSize',16,'HorizontalAlignment','right')5)在图形中添加图例框:legend 函数其调用格式为:A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2……作为图形标注的图例.B.legend('字符串1', '字符串2', ……, pos)------pos 指定图例框显示的位置.图例框被预定了6 个显示位置:0------取最佳位置;1------右上角(缺省值);2------左上角;3------左下角;4------右下角;-1------图的右侧.例:在图形中添加图例.x=0:pi/10:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,'-o',x,y3,'-*')legend('曲线1','曲线2','曲线3')6)用鼠标点选屏幕上的点:ginput 函数格式为:[x, y, button]=ginput(n)其中:n 为所选择点的个数;x,y 均为向量,x 为所选n 个点的横坐标;y 为所选n个点的纵坐标.button 为n 维向量,是所选n 个点所对应的鼠标键的标号:1------左键;2------中键;3------右键.可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.第四节MATLAB 下图形对象的修改MATLAB 图形对象是指图形系统中最基本,最底层的单元,这些对象包括:屏幕(Root), 图形窗口(Figures), 坐标轴(Axes), 控件(Uicontrol), 菜单(Uimenu),线(Lines),块(Patches),面(Surface),图像(Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFiguresAxes Uicontrol Uimenu Uicontextmenu (对象菜单)Images Line Patch Surface Text对各种图形对象进行修改和控制,要使用MATLAB 的图形对象句柄(Handle).在MATLAB 中,每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄.句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等.利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.一.对图形对象的修改可以用下面函数:1)set 函数:用于设置句柄所指的图形对象的属性.Set 函数的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……) 例:h=plot(x,y)set(h, 'Color', [1,0,0])------将句柄所指曲线的颜色设为红色.2)get 函数:获取指定句柄的图形对象指定属性的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolor')------获得X 轴的当前颜色属性值. 执行后可返回X 轴的当前颜色属性值[0,0,0](黑色).3)如果没有设置句柄,则可以使用下列函数获得:gcf:获得当前图形窗口的句柄;gca:获得当前坐标轴对象的句柄;gco:获得当前对象的句柄.如:A.要对图形窗口的底色进行修改,可用:set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色B.要把当前X 轴的颜色改为绿色,可用:set(gca, 'Xcolor', [0,1,0])C.还可对坐标轴的显示刻度进行定义:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/ 2','0','pi/2','pi'])本例中用'xtick'属性设置x 轴刻度的位置(从-pi~pi,间隔pi/2,共设置5 个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数,因此重新设置['-pi','-pi/2','0','pi/2','pi']5 个刻度值.二.一些常用的属性如下:1)Box 属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框), 'off'(无方框);2)'ColorOrder'属性:设置多条曲线的颜色顺序,默认值为:[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]黄色粉色天蓝红色绿色兰色颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:'normal'------正常'reverse'------反向4)坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色, 值为颜色向量如何在画好曲线后再在图上标刻度就是想在一些特定的点边上标上一串30.60.90~7200递增的数据,共有96个点要标!!im = imread(url);imshow(im)然后输入:text(100,100,'\o ','Color','red');matlab,用imread 读入一个图片,我想在图上的一些坐标点上做标记。
MATLAB的基本操作与编程基础实验⼀MATLAB的基本操作、编程基础姓名:学号:⽹选班级:1.简述实验⽬的及实验原理答:本次实验的⽬的是为了了解matlab软件和matlab语⾔的⽤法。
简要介绍了⼀些常⽤的运算符和函数,还有⼀些信号系统在matlab软件⾥怎样实现的。
实验原理是通过matlab软件实现信号系统的⼀些计算。
2.记录实验内容3、4的命令或程序及图形内容3.画出以下各序列在给定区间的图形。
1) x(n)=2δ(n+2)-δ(n-4)+δ(n) ,-5≤n≤52) x(n)=n[u(n)-u(n-10)]+10e-0.3(n-10)[u(n-10)-u(n-20)],0≤n≤203) x(n)=2-cos(0.4πn)- cos(0.8πn),0≤n≤50答:(1)程序为:n=-5:5;x1=[(n+2)==0];x2=[(n-4)==0];x3=[(n+0)==0];x=2.*x1-x2+x3;stem(n,x);xlabel('n');ylabel('x');(2)程序为:%x(n)=n[u(n)-u(n-10)]+10e-0.3(n-10)[u(n-10)-u(n-20)],n=0:20;x1=[n>=0];x2=[n>=10];x3=[n>=20];x4=exp(-0.3).^(n-10);x=x1-x2+10.*x4.*(x2-x3);stem(n,x);xlabel('n 作者:陈哲');ylabel('x');(3)程序为:%x(n)=2-cos(0.4|Dn)- cos(0.8|Dn£? ,0?ün?ü50%x(n)=2-cos(0.4|Dn)- cos(0.8|Dn£? ,0?ün?ü50n=0:50;x1=cos(0.4*n.*pi);x2=cos(0.8*n.*pi);x=2-x1-x2;subplot(211);stem(n,x);xlabel('n 作者:陈哲');ylabel('x');title('采样点很少的情况');n1=0:0.01:50;x11=cos(0.4*n1.*pi);x21=cos(0.8*n1.*pi);x0=2-x11-x21;subplot(212);stem(n1,x0);xlabel('n 作者:陈哲');ylabel('x');title('采样点很多的情况');4.令x(n)={1,2,3,4,5,6,7,6,5,4,3,2,1},画出下列序列的图形1) x1(n)=2x(n-5)-3x(n-4)2) x2(n)=x(3-n)-x(n)x(n-2)3) x e(n)和x o(n) ---通过编写求x e(n)、x o(n)的M-file来实现(需要给出测试函数) x e(n) 和x o(n)分别为x(n)的偶部和奇部解:(1)程序为:%x1(n)=2x(n-5)-3x(n-4),x(n)={1,2,3,4,5,6,7,6,5,4,3,2,1}%x1=x(n-5) x2=x(n-4)x=[1,2,3,4,5,6,7,6,5,4,3,2,1];n=0:12;[x1,n1]=sigshift(x,n,5);[x2,n2]=sigshift(x,n,4);[y,n3] = sigadd((2.*x1),n1,(-3.*x2),n2)subplot(211);stem(n,x);xlabel('n');ylabel('x(n)');subplot(212);stem(n3,y);xlabel('n');ylabel('x1(n)=2x(n-5)-3x(n-4)');⾃定义函数有:%实现信号加的M-file :y(n)=x1(n)+x2(n)function [y,n] = sigadd(x1,n1,x2,n2)n = min(min(n1),min(n2)):max(max(n1),max(n2));y1 = zeros(1,length(n)); y2 = y1;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;y = y1+y2;%移位的M-file :y(n)=x(n-n0)function [y,n] = sigshift(x,m,n0)n = m+n0; y = x;(2)程序为:%x2(n)=x(3-n)-x(n)x(n-2)%x0=x(3-n);x1=x(n)x(n-2);x=[1,2,3,4,5,6,7,6,5,4,3,2,1];n0=0:12;[x00,n10] = sigshift(x,3,n0);[x0,n1] = sigfold(x00,n10);[x11,n11] = sigshift(x,2,n0);[x1,n2] = sigmult(x,n0,x11,n11);[x2,n] = sigadd(x0,n1,-x1,n2);stem(n,x2);xlabel('n');ylabel('x2(n)');title('x2(n)=x(3-n)-x(n)x(n-2)');⾃定义函数有:%实现信号乘的M-file : y(n)=x1(n) x2(n)function [y,n] = sigmult(x1,n1,x2,n2)n = min(min(n1),min(n2)):max(max(n1),max(n2));y1 = zeros(1,length(n)); y2 = y1;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; y = y1 .* y2;%折叠的M-file :y(n)=x(-n)function [y,n] = sigfold(x,n)y = fliplr(x); n = -fliplr(n);(3)程序为:奇部函数:function [y1,m1 ] =jishu( x,n )for i=1:2:nif i<=nm1((i+1)/2)=(i+1)/2;y1((i+1)/2)=x(i);endend偶部函数:function [y1,m1 ] =oushu( x,n )for i=2:2:nif i<=nm1((i)/2)=(i)/2;y1((i)/2)=x(i);endend测试程序:x=[1,2,3,4,5,6,7,6,5,4,3,2,1];n0=1:13;n=13;[y1,m1]=jishu(x,n);[y2,m2]=oushu(x,n);subplot(311);stem(n0,x);xlabel('n');ylabel('x(n)');title('x(n)');subplot(312);stem(m1,y1);xlabel('n');ylabel('x(n)??2?');title('x(n)??2?'); subplot(313);stem(m2,y2);xlabel('n');ylabel('x(n)??2?');title('x(n)??2?');。
初学者MATLAB的使用流程1. 准备工作在开始学习MATLAB之前,需要进行一些准备工作,确保您能够顺利地使用MATLAB。
以下是一些准备步骤:•安装MATLAB:首先,您需要从MathWorks官方网站上下载并安装MATLAB软件。
根据您的操作系统选择适合的版本,并按照安装向导进行安装。
•注册MathWorks账号:在安装MATLAB后,您需要创建一个MathWorks账号。
这个账号可以让您访问一些额外的资源和学习材料。
•获取许可证:安装MATLAB后,您需要获取一个许可证,以便您可以在一定期限内使用该软件。
2. 启动MATLAB完成准备工作后,您可以启动MATLAB并开始使用它。
按照以下步骤启动MATLAB:1.双击MATLAB图标或在其他方式下打开MATLAB软件。
2.在MATLAB启动界面上,输入您的MathWorks账号信息并登录。
3.一旦登录成功,MATLAB主界面将显示出来。
您可以看到各种工具栏、编辑器、命令窗口和工作区等。
3. MATLAB基本操作在启动MATLAB后,您可以尝试进行一些基本操作。
以下是一些常用的MATLAB基本操作:•编写脚本文件:MATLAB使用M文件来存储和执行代码。
您可以在编辑器中编写MATLAB代码并将其保存为M文件。
然后,您可以通过运行M 文件来执行其中的代码。
•使用命令窗口:MATLAB命令窗口是与MATLAB进行交互的主要界面。
您可以在命令窗口中输入MATLAB命令,然后按下Enter键执行它们。
命令窗口还会显示出MATLAB的输出结果。
•存储变量:MATLAB可以存储和处理各种类型的变量。
您可以使用赋值操作符将值赋给变量,并在后续的代码中使用这些变量。
•运行简单的计算:MATLAB可以执行各种数学和计算操作。
您可以在命令窗口中输入数学表达式,并按下Enter键以进行计算。
4. MATLAB函数和工具箱MATLAB提供了大量的函数和工具箱,以便您可以进行更复杂的数学、科学和工程计算。
MATLAB上机实验心得1. 引言在学习MATLAB课程期间,我们进行了一系列的上机实验。
通过这些实验,我深刻体会到了MATLAB在数学建模和数据分析方面的强大功能。
本文将详细介绍我在实验中的学习心得和体会,并分享一些使用MATLAB进行数据处理和可视化的技巧。
2. 实验一:MATLAB基础在第一次实验中,我们掌握了MATLAB的基本操作和语法。
通过编写简单的脚本,我学会了如何定义变量、进行算术运算、使用条件语句和循环结构等。
我还学会了如何使用MATLAB自带的函数库来解决常见的数学问题。
这次实验让我对MATLAB有了初步的认识,并为后续实验打下了坚实的基础。
3. 实验二:数据处理与可视化在第二次实验中,我们探索了MATLAB在数据处理和可视化方面的能力。
我们使用了一些常见的数据处理函数,如读取文件、筛选数据、计算统计量等。
我们还学习了如何使用plot函数绘制线图、scatter函数绘制散点图以及histogram函数绘制直方图等。
通过这次实验,我意识到MATLAB在数据处理和可视化方面的高效和便捷。
使用MATLAB,我们可以快速地对大量数据进行处理和分析,并通过可视化方式直观地展示数据的特征和规律。
4. 实验三:数学建模第三次实验是最具挑战性的一次,我们需要运用MATLAB解决实际问题并进行数学建模。
在实验中,我们学习了如何将实际问题转化为数学模型,并使用MATLAB求解。
我们通过编写脚本来解决最优化问题、微分方程求解等。
这次实验让我深刻理解了数学建模的重要性,并提高了我的问题解决能力。
MATLAB 的强大计算能力和丰富的函数库为数学建模提供了极大的便利。
5. 实验四:图像处理在第四次实验中,我们学习了MATLAB在图像处理方面的应用。
我们掌握了如何读取、显示、修改和保存图像。
我们还学会了一些常见的图像处理算法,如灰度变换、直方图均衡化、滤波器等。
这次实验让我对图像处理有了初步的认识,并意识到MATLAB在该领域有着广泛应用。
第1次 MATLAB 绘图及简单编程
一、曲线绘图
1. 画出sin cos y x x =+在区间[2,2]ππ-上的图形,设定y 的范围为[1,1]-。
【MATLAB 程序】:
»绘制y= sin(x) + cos(x);
x=-2*pi:0.1:2*pi; %定义自变量x 的范围在(-2*pi 2*pi )之间,步长为0.1 y= sin(x) + cos(x); %写出需绘制图形的函数表达式 plot(x,y); %调用绘图命令对函数Y 进行图形绘制 axis([-2*pi 2*pi -1 1]); %对已经绘制图形的坐标系进行设置 title('y= sin(x) + cos(x);','fontsize',15);%设置图形标题
xlabel('X','color','r','fontsize',15,'position',[6,-1.15]);%设置X 轴标签
ylabel('Y','color','r','fontsize',15,'position',[-7,1]); %设置y 轴标签 annotation('arrow',[0.8 1],[0.108 0.108]); %设置X轴的箭头· annotation('arrow',[0.132 0.132],[0.8 1]); %设置Y 轴的箭头
【输出结果】:
X
Y
2.绘制高斯曲线2
x y e -=。
【MATLAB 程序】:
% 高斯曲线
clear; %清除工作空间的
x=-10:0.01:10; %定义自变量x 的范围在(-10 10)之间,步长为0.01 figure(1) %设置图形窗口标题为figure (1) y=exp(-(x.^2)); %写出需绘制图形的表达式
plot(x,y,'b','LineWidth',1.5); %调用绘图命令plot 对函数y 进行绘制 title('y=e^-(x^2)','fontsize',15);%设置图形的标题
xlabel('X','color','r','fontsize',15,'position',[10,-0.06]); ylabel('Y','color','r','fontsize',15,'position',[-11,1]);
【输出结果】:
-10
-8
-6
-4
-2
2
4
6
8
10
0.10.20.30.40.50.60.70.80.9
1
y=e -(x 2
)
X
Y
3. 画出参数方程11
2311
23cos cos7sin17,02sin sin 7cos17x t t t t y t t t
π=++⎧≤≤⎨=++⎩的图形。
【MATLAB 程序】:
t=0:0.1:2*pi; %定义自变量x 的范围在(0 2*pi )之间,步长为0.1 x=cos(t)+1/2*cos(7*t)+1/3*sin(17*t);%写出参数表达式 y=sin(t)+1/2*sin(7*t)+1/3*cos(17*t); %写出参数表达式 plot(x,y,'LineWidth',1); %调用绘图命令plot 对函数y 进行绘制
【输出结果】:
-2
-1.5-1-0.500.51 1.52
-2-1.5-1-0.500.511.5
2
4. 绘制极坐标方程cos 4342cos sin ,02e θθρθθπ
=-+≤≤的图形。
【MATLAB 程序】:
theta=0:0.1:2*pi;
P=exp(cos(theta))-2*cos(theta).^4+sin(theta/4).^3;
polar(theta,P); %调用极坐标画图命令ploar(x,y)进行绘图
title('P=exp(cos(theta))-2cos(theta).^4+sin(theta/4).^3','fontsize',15);%设置figure 图形的标题
%[x,y] = pol2cart(theta,P);plot(x,y) %将极坐标转换成直角坐标
【输出结果】:
90
270
180
0P=exp(cos(theta))-2cos(theta).4+sin(theta/4).
3
5. 绘制双扭线22sin 2r a θ=。
【MATLAB 程序】:
t = 0:.01:2*pi;
polar(t,sqrt(2^2*sin(2*t))) % a=2
title('r^2=a^2*sin(2*t) (a=2)','fontsize',15);
【输出结果】:
90270
180
r 2=a 2
*sin(2*t) (a=2)
二、曲面绘图
1. 绘制曲面()sin(),(,)[3,3][3,3]z x y x y x y =+-∈-⨯-。
【MATLAB 程序】:
[x,y]=meshgrid(-3:0.1:3,-3:0.1:3); %定义自变量x 的范围在(-3:0.1:3)之间,y 的 范围在(-3:0.1:3)之间 z=(x+y)*sin(x-y);
mesh(x,y,z); %调用命令绘制网状图形
title('z=(x+y)*sin(x-y)','fontsize',15);
xlabel('x','fontsize',15);ylabel('y','fontsize',15);zlabel('z','fonts ize',15);
【输出结果】:
-4
4
x
z=(x+y)*sin(x-y)
y
z
2. 绘制曲面2
233()
(3),(,)[2,2][2,2]x
y z x xy y e x y -+=++∈-⨯-。
【MATLAB 程序】:
[x,y]=meshgrid(-2:0.1:2,-2:0.1:2); z=(x.^3+3*x.*y+y.^3)*exp(-(x.^2+y.^2)); mesh(x,y,z);
title('z=(x.^3+3*x*y+y.^3)*exp^(-(x.^2+y.^2))','fontsize',15); xlabel('x','fontsize',15);ylabel('y','fontsize',15);zlabel('z','fonts ize',15); %设置x 轴和Y 轴的标签
【输出结果】:
-2
2
x
z=(x 3+3xy+y 3)*exp(-(x 2+y 2
))
y
z
3. 绘制曲面32,cos ,sin ,,[0.3,8],[0,2]r at bt c x r v y r v z t t v π=++===∈∈,,,a b c
为参数。
【MATLAB 程序】:
%t=0.3:0.1:8; v=0:0.1:2*pi;
[t,v]=meshgrid(0.3:0.1:8,0.3:0.1:8); r=t.^3+t.^2+1; x=r.*cos(v); y=r.*sin(v); mesh(x,y,r);
xlabel('x','fontsize',15);ylabel('y','fontsize',15);zlabel('z','fonts ize',15);
【输出结果】:
-1000
1000
x
y
z。