MATLAB程序设计-关于常用绘图函数的运用方法及说明

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLAB程序设计作业陈杰杰2013090302072014-11-3MATLAB具有强大的图形处理功能。下面给出了3个m脚本文件,请在MATLAB环境下运行,观察其输出。要求根据每个m文件输出的图形(共18个),用中文翻译并解释产生每个输出图形的函数具体是什么?其功能是什么?文件1:clearall%清除工作区间所有的变量clf%清除图形窗口的内容mfilename('fullpath')%返回当前正在运行的函数所在文件的文件名(全部路径)echoon%显示M文件执行的每一条命令subplot(2,3,1)%使(2*3)幅子图中第一个子图成为当前图t=0:0.1:10;%将以0为起点、以10为终点、以0.1为步长的一维矩阵赋值给tz=impulse(1,[111],t);%动力系统的脉冲响应数据,以时间t步长0.1为单位stairs(t(1:5:end),z(1:5:end))%绘制阶梯状图,从第1行开始,间隔5行取1行,到最后1行为止holdon%保持当前坐标轴和图形,并接受下一次绘制plot(t,z,'r')%用红线绘制横轴为t、纵轴为z的二维函数图plot([0t(end)],[00],'k:')%用黑色虚线绘制函数图像,要求经过原点平行于横轴、取值范围为0到t的最后一个值title('ImpulseResponse-(STAIRS)')%将此图命名为ImpulseResponse-(STAIRS)(脉冲响应-(阶梯图))subplot(2,3,2)%使(2*3)幅子图中第二个子图成为当前图theta=2*pi*(0:74)/75;%将以0为起点、以2*pi*74/75为终点、2*pi/75为步长的一维矩阵赋值给thetax=cos(theta);%计算cos(theta)的值,并赋给xy=sin(theta);%计算sin(theta)的值,并赋给yz=abs(fft(ones(10,1),75))';%ones(10,1)生成十行一列的全一矩阵;fft(ones(10,1),75)进行快速傅里叶变换;z=abs(fft(ones(10,1),75))'取幅值并转置stem3(x,y,z)%绘制三维杆状图title('PolarFFT-(STEM3)')%将此图命名为PolarFFT-(STEM3)(极坐标下快速傅里叶变换-(三维针状图))subplot(2,3,3)%使(2*3)幅子图中第二个子图成为当前图[X,Y,Z]=peaks(-2:0.25:2);%产生-2为起点、2为终点、0.25为步长的guassian分布矩阵,返回峰函数的三个坐标轴空间上的数值,X表示在x轴,Y表示在y轴,Z表示在z轴,这样每个点就对应一个(X,Y,)[U,V]=gradient(Z,0.25);%返回二维数值梯度的U、V部分,这里的0.25指定了沿着梯度的方向取点的间隔为0.25contour(X,Y,Z,10);%绘制矩阵Z的等高线,绘制的等高线被限定在由X、Y指定的区域内,等高线条数为10holdon%保持当前坐标轴和图形,并接受下一次绘制quiver(X,Y,U,V);%使用箭头来直观的显示矢量场,该调用格式表示通过在(X,Y)指定的位置绘制小箭头来表示以该点为起点的向量(U,V)title('SurfaceGradient-(CONTOUR&QUIVER)')%将此图命名为SurfaceGradient-(CONTOUR&QUIVER)(表面梯度-(等高线图和矢量场图))theta=0:0.1:4*pi;%将以0为起点、以4*pi为终点、0.1为步长的一维矩阵赋值给theta[x,y]=pol2cart(theta(1:5:end),theta(1:5:end));%把极坐标(theta(1:5:end),theta(1:5:end))转换为对应的二维笛卡尔坐标(x,y),theta(1:5:end)表示从第一行到最后一行,每五行取一行subplot(2,3,4)%使(2*3)幅子图中第四个子图成为当前图polar(theta,theta)%绘制极坐标图像,第一个theta是用弧度制表示的角度,第二个theta是对应的半径axis([-1313-12.514.5])%横坐标范围为-13到13,纵坐标范围为-12.5到14.5title('SpiralPlot-(POLAR)')%将此图命名为SpiralPlot-(POLAR)(螺旋图-极坐标图)subplot(2,3,5)%使(2*3)幅子图中第五个子图成为当前图compass(x,y)%绘制罗盘图axis([-1313-12.514.5])%横坐标范围为-13到13,纵坐标范围为-12.5到14.5title('DirectionVectors-(COMPASS)')%将此图命名为DirectionVectors-(COMPASS)(方向矢量-罗盘图)subplot(2,3,6)%使(2*3)幅子图中第六个子图成为当前图feather(x(1:19),y(1:19))%绘制羽状图,其中x、y表示一组向量,x是向量的横坐标(x分量),y是向量的纵坐标(y分量)。该调用格式将在水平轴上等间隔的把这些向量用带箭头的线绘制出来axis([121-510])%横坐标范围为1到21,纵坐标范围为-5到10title('DirectionVectors-(FEATHER)')%将此图命名为DirectionVectors-(FEATHER)(方向矢量-羽状图)set(gcf,'Position',[64111887564])%对gcf的位置进行设置,使其在屏幕上的显示位置是以(64,111)为原点,长为887,宽为564;gcf是返回当前Figure对象的句柄值echooff%关闭显示M文件执行的每一条命令shg%显示图形窗口(1)运行结果为:(2)分析:首先用subplot(2,3,k)设置多子图,k为1至6的整数,将图分为6个子图,令k为1设置左上角为当前图。第一幅图为“脉冲响应-(阶梯图)”,用impulse函数计算连续系统的单位脉冲响应,通过stairs函数绘制阶梯状图。holdon函数保持当前坐标轴和图形,并接受下一次绘制,plot(t,z,'r')用红线绘制横轴为t、纵轴为z的二维函数图,plot([0t(end)],[00],'k:')用黑色虚线绘制函数图像,要求经过原点平行于横轴、取值范围为0到t的最后一个值,即用黑色虚线显示z的正半轴:第二幅图为“极坐标下快速傅里叶变换-(三维针状图)”,用stem3函数绘制三维杆状图,得出xyz的函数图像:0510-0.100.10.20.30.40.50.6ImpulseResponse-(STAIRS)-101-1010510PolarFFT-(STEM3)SurfaceGradient-(CONTOUR&QUIVER)-2-1012-2-101210203021060240902701203001503301800SpiralPlot-(POLAR)10203021060240902701203001503301800DirectionVectors-(COMPASS)5101520-50510DirectionVectors-(FEATHER)012345678910-0.100.10.20.30.40.50.6ImpulseResponse-(STAIRS)第三幅图为“表面梯度-(等高线图和矢量场图)”,[X,Y,Z]=peaks(-2:0.25:2);通过peaks()函数产生-2为起点、2为终点、0.25为步长的guassian分布矩阵,返回峰函数的三个坐标轴空间上的数值,X表示在x轴,Y表示在y轴,Z表示在z轴,这样每个点就对应一个(X,Y,Z),[U,V]=gradient(Z,0.25)返回二维数值梯度的U、V部分,这里的0.25指定了沿着梯度的方向取点的间隔为0.25。contour(X,Y,Z,10)绘制矩阵Z的等高线,绘制的等高线被限定在由X、Y指定的区域内,等高线条数为10。通过quiver()函数使用箭头来直观的显示矢量场,该调用格式表示通过在(X,Y)指定的位置绘制小箭头来表示以该点为起点的向量(U,V):第四幅图为“螺旋图-(极坐标)”,使用polar()函数绘制极坐标图像,第一个theta是用弧度制表示的角度,第二个theta是对应的半径,用axis()函数确定坐标系范围:-1-0.500.51-1-0.500.510246810PolarFFT-(STEM3)SurfaceGradient-(CONTOUR&QUIVER)-2-1.5-1-0.500.511.52-2-1.5-1-0.500.511.52第五幅图为“方向矢量-(罗盘图)”,首先用pol2cart函数将极坐标转换为对应的二维笛卡尔坐标,再用compass()函数绘制罗盘图,axis()函数确定坐标系范围:第六幅图为“方向矢量-(羽状图)”,feather(x(1:19),y(1:19))绘制羽状图,其中x、y表示一组向量,x是向量的横坐标(x分量),y是向量的纵坐标(y分量)。该调用格式将在水平轴上等间隔的把这些向量用带箭头的线绘制出来,axis()函数确定坐标系范围:最后设置图像位置set(gcf,'Position',[64111887564]),使其在屏幕上的显示位置是以(64,111)为原点,长为887,宽为564;gcf是返回当前Figure对象的句柄值510153021060240902701203001503301800DirectionVectors-(COMPASS)2468101214161820-50510DirectionVectors-(FEATHER)文件2:clearall%清除工作区间所有的变量clf%清除图形窗口的内容echoon%显示M文件执行的每一条命令data=[10235;58103;9761;3572;4753];%定义data为一个四行四列的矩阵,并赋值subplot(2,3,1)%使(2*3)幅子图中第一个子图成为当前图bar(data,'stacked');%绘制矩阵date的条形图,把同一组数据描述在一个直方条上title('BarGraph-(BAR,''stacked'')');%将此图命名为BarGraph-(BAR,''stacked'')(条形图-(条形图,“堆叠”))subplot(2,3,2)%使(2*3)幅子图中第二个子图成为当前图bar3h(data);%绘制矩阵data的垂直的三维直方图title('HorizontalBarGraph-(BAR3H,''grouped'')');%将此图命名为HorizontalBarGraph-(BAR3H,''grouped'')'(水平条形图-(垂直的三维直方图,“分组”))subplot(2,3,3)%使(2*3)幅子图中第三个子图成为当前图hist(randn(1000,3));%绘制一个1000*3的随机项矩阵的直方图,randn()是产生标准正态分布的随机数或矩阵的函数title('Histogram-(HIST)');%将此图命名为Histogram-(HIST)(直方图-(直方图))subplot(2,3,4)%使(2*3)幅子图中第四个子图成为当前图area(data);%绘制矩阵data的填充区域图title('AreaPlot-(AREA)');%将此图命名为AreaPlot-(AREA)(面积图-(填充区域图))subplot(2,3,5)%使(2*3)幅子图中第五个子图成为当前图pie3(sum(data),[0010]);%绘制矩阵data每一行之和与所占总和比例的三维饼图,并突出显示第三行title(['3-DPieChart';'(PIE3)']);%将此图命名为'3-DPieChart';'(PIE3)'(三维饼状图(三维饼图))subplot(2,3,6)%使(2*3

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功