1、MATLAB程序设计关于常用绘图函数的运用方法及说明解读 MATLAB程序设计作业陈杰杰201309030207 2014-11-3MATLAB具有强大的图形处理功能。下面给出了3个m脚本文件,请在MA TLAB环境下运行,观察其输出。要求根据每个m文件输出的图形(共18个,用中文翻译并解释产生每个输出图形的函数具体是什么?其功能是什么?文件1:clear all %清除工作区间所有的变量clf %清除图形窗口的内容mfilename(fullpath %返回当前正在运行的函数所在文件的文件名(全部路径 echo on %显示M文件执行的每一条命令subplot(2,3,1 %使(2*3幅子图
2、中第一个子图成为当前图t = 0:0.1:10; %将以0为起点、以10为终点、以0.1为步长的一维矩阵赋值给t z = impulse(1, 1 1 1, t; %动力系统的脉冲响应数据,以时间t步长0.1为单位stairs(t(1:5:end,z(1:5:end %绘制阶梯状图,从第1行开始,间隔5行取1行,到最后1行为止hold on %保持当前坐标轴和图形,并接受下一次绘制plot(t,z,r %用红线绘制横轴为t、纵轴为z的二维函数图plot(0 t(end, 0 0, k: %用黑色虚线绘制函数图像,要求经过原点平行于横轴、取值范围为0到t的最后一个值title(Impulse R
3、esponse - (STAIRS %将此图命名为Impulse Response - (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进
4、行快速傅里叶变换;z = abs(fft(ones(10,1, 75取幅值并转置stem3(x, y, z %绘制三维杆状图title(Polar FFT - (STEM3 %将此图命名为Polar FFT - (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.2
5、5; %返回二维数值梯度的U、V部分,这里的0.25指定了沿着梯度的方向取点的间隔为0.25contour(X,Y,Z,10; %绘制矩阵Z的等高线,绘制的等高线被限定在由X、Y指定的区域内,等高线条数为10hold on %保持当前坐标轴和图形,并接受下一次绘制quiver(X,Y,U,V; %使用箭头来直观的显示矢量场,该调用格式表示通过在(X, Y指定的位置绘制小箭头来表示以该点为起点的向量(U,Vtitle(Surface Gradient - (CONTOUR & QUIVER %将此图命名为Surface Gradient - (CONTOUR & QUIVER(表面梯度-(等高线
6、图和矢量场图theta = 0:0.1:4*pi; %将以0为起点、以4*pi为终点、0.1为步长的一维矩阵赋值给thetax,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(-13 13 -12.
7、5 14.5 %横坐标范围为-13到13,纵坐标范围为-12.5到14.5title(Spiral Plot - (POLAR %将此图命名为Spiral Plot - (POLAR(螺旋图-极坐标图subplot(2,3,5 %使(2*3幅子图中第五个子图成为当前图compass(x,y %绘制罗盘图axis(-13 13 -12.5 14.5 %横坐标范围为-13到13,纵坐标范围为-12.5到14.5title(Direction Vectors - (COMPASS %将此图命名为Direction Vectors - (COMPASS(方向矢量-罗盘图subplot(2,3,6 %使
8、(2*3幅子图中第六个子图成为当前图feather(x(1:19,y(1:19 %绘制羽状图,其中x、y表示一组向量,x是向量的横坐标(x分量,y是向量的纵坐标(y分量。该调用格式将在水平轴上等间隔的把这些向量用带箭头的线绘制出来axis(1 21 -5 10 %横坐标范围为1到21,纵坐标范围为-5到10title(Direction Vectors - (FEATHER %将此图命名为Direction Vectors - (FEATHER(方向矢量-羽状图set(gcf,Position, 64 111 887 564 %对gcf的位置进行设置,使其在屏幕上的显示位置是以(64,111为
9、原点,长为887,宽为564;gcf是返回当前Figure对象的句柄值echo off %关闭显示M文件执行的每一条命令shg %显示图形窗口(1运行结果为:(2分析:首先用subplot (2,3,k 设置多子图,k 为1至6的整数,将图分为6个子图,令k 为1设置左上角为当前图。第一幅图为“脉冲响应-(阶梯图”,用impulse 函数计算连续系统的单位脉冲响应,通过stairs 函数绘制阶梯状图。hold on 函数保持当前坐标轴和图形,并接受下一次绘制,plot(t,z,r用红线绘制横轴为t 、纵轴为z 的二维函数图,plot(0 t(end, 0 0, k:用黑色虚线绘制函数图像,要求
10、经过原点平行于横轴、取值范围为0到t 的最后一个值,即用黑色虚线显示z 的正半轴:第二幅图为“极坐标下快速傅里叶变换-(三维针状图”,用stem3函数绘制三维杆状图,得出xyz 的函数图像: Impulse Response - (STAIRS Polar FFT - (STEM3Surface Gradient - (CONTOUR & QUIVER90270 90270Direction Vectors - (FEATHERImpulse Response - (STAIRSPolar FFT - (STEM3 第三幅图为“表面梯度-(等高线图和矢量场图”,X,Y,Z = peaks(-2
11、: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:Sur
12、face Gradient - (CONTOUR & QUIVER 第四幅图为“螺旋图-(极坐标”,使用polar(函数绘制极坐标图像,第一个theta 是用弧度制表示的角度,第二个theta是对应的半径,用axis(函数确定坐标系范围: 第五幅图为“方向矢量-(罗盘图”,首先用pol2cart 函数将极坐标转换为对应的二维笛卡尔坐标,再用compass (函数绘制罗盘图,axis (函数确定坐标系范围: 第六幅图为“方向矢量-(羽状图”,feather(x(1:19,y(1:19绘制羽状图,其中x 、y 表示一组向量,x 是向量的横坐标(x 分量,y 是向量的纵坐标(y 分量。该调用格式将在
13、水平轴上等间隔的把这些向量用带箭头的线绘制出来,axis (函数确定坐标系范围: 最后设置图像位置set(gcf,Position, 64 111 887 564,使其在屏幕上的显示位置是以(64,111为原点,长为887,宽为564;gcf 是返回当前Figure 对象的句柄值90270Direction Vectors - (COMPASSDirection Vectors - (FEATHER文件2:clear all %清除工作区间所有的变量clf %清除图形窗口的内容echo on %显示M文件执行的每一条命令data = 10 2 3 5; 5 8 10 3; 9 7 6 1; 3
14、 5 7 2; 4 7 5 3; %定义data为一个四行四列的矩阵,并赋值subplot(2,3,1%使(2*3幅子图中第一个子图成为当前图bar(data, stacked; %绘制矩阵date的条形图,把同一组数据描述在一个直方条上title(Bar Graph - (BAR, stacked; %将此图命名为Bar Graph - (BAR, stacked (条形图-(条形图,“堆叠”subplot(2,3,2 %使(2*3幅子图中第二个子图成为当前图bar3h(data; %绘制矩阵data的垂直的三维直方图title(Horizontal Bar Graph - (BAR3H,
15、grouped; %将此图命名为Horizontal Bar Graph - (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(A
16、rea Plot - (AREA; %将此图命名为Area Plot - (AREA(面积图-(填充区域图subplot(2,3,5 %使(2*3幅子图中第五个子图成为当前图pie3(sum(data, 0 0 1 0; %绘制矩阵data每一行之和与所占总和比例的三维饼图,并突出显示第三行title(3-D Pie Chart; (PIE3 ; %将此图命名为3-D Pie Chart; (PIE3 (三维饼状图(三维饼图subplot(2,3,6 %使(2*3幅子图中第六个子图成为当前图rose(5/3*randn(1000,1, 18; %绘制一个1000*1的随机项矩阵并乘以5/3的角
17、直方图,梯度方向数为18title(Polar Histogram - (ROSE; %将此图命名为Polar Histogram - (ROSE(极坐标图-(角直方图set(gcf,Position,184 248 740 424 %对gcf的位置进行设置,使其在屏幕上的显示位置是以(184,248为原点,长为740,宽为424;gcf是返回当前Figure对象的句柄值echo off %关闭显示M文件执行的每一条命令shg %显示图形窗口(1运行结果为: (2分析:首先定义data 为一个四行四列的矩阵,并赋值,然后用subplot (2,3,k 设置多子图,k 为1至6的整数,将图分为6
18、个子图第一幅图为“条形图-(条形图,“堆叠”,通过bar(data, stacked函数绘制矩阵date 的条形图,stacked 表示把同一组数据描述在一个直方条上: 第二幅图为“水平条形图-(垂直的三维直方图,“分组”,使用bar3h(函数绘制矩阵data 的垂直的三维直方图:Bar Graph - (BAR, stackedHorizontal Bar Graph - (BAR3H, groupedHistogram - (HISTArea Plot - (AREA3-D Pie Chart(PIE3 Polar Histogram - (ROSEBar Graph - (BAR, st
19、ackedHorizontal Bar Graph - (BAR3H, grouped 第三幅图为“直方图-(直方图”,通过hist(函数绘制直方图,randn(1000,3是产生1000*3的标准正态分布的随机数矩阵的函数: 第四幅图为“面积图-(填充区域图”,通过area(函数绘制填充区域图:Area Plot - (AREA 第五幅图为“三维饼状图 (三维饼图”,通过pie3(函数绘制三维饼图,0 0 1 0表示突出显示第三部分 第六幅图为“极坐标图-(角直方图”,通过rose(函数绘制角直方图,括号内第二个常数表示梯度方向数: 最后,对图像位置进行设置,用set(函数,gcf 是返回当
20、前Figure 对象的句柄值,shg 表示显示图形窗口30%28%3-D Pie Chart (PIE313%30%902701800Polar Histogram - (ROSE文件3:echo on %显示M文件执行的每一条命令subplot(2,3,1 %使(2*3幅子图中第一个子图成为当前图x = -3:0.3:3; y = x; %将以-3为起点、以3为终点、以0.3为步长的一维矩阵赋值给x,并将x的值赋给yX,Y=meshgrid(x,y; %通过meshgrid(生成绘制3-D图形所需的网格数据,即返回两个矩阵X、Y,生成网格采样点,X、Y的行数都等于输入参数y中元素的总个数,X
21、、Y的列数都等于输入参数x中元素总个数theat,R = cart2pol(X,Y; %把二维笛卡尔坐标(X,Y转换为对应的极坐标(theat,RZ = sinc(R; %将R的辛格函数值赋给Zcontourf(peaks(30, 10 %画出peaks(30的填充的等高线图,10表示10条高度不同的等高线,peaks(函数用来产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其中有2个变量,由平移和放缩高斯分布函数获得,30表示输出30*30的矩阵colorbar %显示颜色条grid on %显示网格线title(Peaks Function - (CONTOURF & COL
22、ORBAR %将此图命名为Peaks Function - (CONTOURF & COLORBAR(峰函数-(填充的等高线图和颜色条subplot(2,3,2 %使(2*3幅子图中第二个子图成为当前图plot3(X,Y,Z %绘制X、Y、Z的使用线性轴的三维线图grid on %显示网格线axis(-3 3 -3 3 -1 1 %X轴坐标范围为3到3,Y轴坐标范围为-3到3,Z轴坐标范围为-1到1title(Sinc Function - (PLOT3 %将此图命名为Sinc Function - (PLOT3(辛格函数-(使用线性轴的三维线图subplot(2,3,3 %使(2*3幅子图中
23、第三个子图成为当前图waterfall(membrane(1; %waterfall用来绘制瀑布图,membrane(1生成MA TLAB的标志title(L-shaped Membrane - (WATERFALL %将此图命名为L-shaped Membrane - (WATERFALL(L型膜-(瀑布图subplot(2,3,4 %使(2*3幅子图中第四个子图成为当前图contour3(peaks(30, 25; %绘制peaks(30的填充的三维等高线图,25表示25条高度不同的等高线,peaks(函数用来产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其中有2个变量,由
24、平移和放缩高斯分布函数获得,30表示输出30*30的矩阵title(Peaks Function - (CONTOUR3 %将此图命名为Peaks Function - (CONTOUR3 (峰函数-(三维等高线图subplot(2,3,5 %使(2*3幅子图中第五个子图成为当前图mesh(X,Y,Z %绘制X、Y、Z的三维网格曲面图axis(-3 3 -3 3 -1 1 %X轴坐标范围为3到3,Y轴坐标范围为-3到3,Z轴坐标范围为-1到1title(Sinc Function - (MESH %将此图命名为Sinc Function - (MESH(辛格函数-(三维网格曲面图subplot
25、(2,3,6 %使(2*3幅子图中第六三个子图成为当前图 surf(membrane(1 %绘制Matlab 标志的三维着色曲面图 title(L-shaped Membrane - (SURF %将此图命名为L-shaped Membrane - (SURF(L 型膜-(三维着色曲面图set(gcf,Position,211 248 713 413 %对gcf 的位置进行设置,使其在屏幕上的显示位置是以(211,248为原点,长为713,宽为413;gcf 是返回当前Figure 对象的句柄值echo off %关闭显示M 文件执行的每一条命令 shg %显示图形窗口(1运行结果为: (2分
26、析:首先首先用subplot (2,3,k 设置多子图,k 为1至6的整数,将图分为6个子图,令k 为1设置左上角为当前图。给x 、y 赋初值,通过meshgrid (生成绘制3-D 图形所需的网格数据,即返回两个矩阵X 、Y ,生成网格采样点,把二维笛卡尔坐标(X,Y转换为对应的极坐标(theat,R,将R 的辛格函数值赋给Z 。第一幅图为“峰函数-(填充的等高线图和颜色条”,通过contourf (绘制,其中10表示10条高度不同的等高线,peaks(函数用来产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其中有2个变量,由平移和放缩高斯分布函数获得,30表示输出30*30的
27、矩阵。通过colorbar 和grid on 分别显示颜色条、网格线:Peaks Function - (CONTOURF & COLORBARSinc Function - (PLOT3L-shaped Membrane - (WATERFALLPeaks Function - (CONTOUR3Sinc Function - (MESHL-shaped Membrane - (SURF-6-4-20246第二幅图为“辛格函数-(使用线性轴的三维线图”,通过plot3(函数绘制,grid on 显示网格线,axis 函数限定坐标系范围:第三幅图为“L 型膜-(瀑布图”,通过函数waterfa
28、ll (用来绘制瀑布图,membrane(1生成MATLAB 的标志:Peaks Function - (CONTOURF & COLORBAR -6-4-2246 Sinc Function - (PLOT3 L-shaped Membrane - (WATERFALL第四幅图为“峰函数-(三维等高线图”,通过函数contour3(绘制三维等高线图, peaks(30用来产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其中有2个变量,由平移和放缩高斯分布函数获得,30表示输出30*30的矩阵,25表示要求有25条高度不同的等高线:Peaks Function - (CONTOUR3 第五幅图为“辛格函数-(三维网格曲面图”,通过mesh(函数绘制三维网格曲面图, axis限定坐标系范围Sinc Function - (MESH 第六幅图为L型膜-(三维着色曲面图,通过surf(函数绘制三维着色曲面图L-shaped Membrane - (SURF 最后用set(函数设置图像位置,函数echo off 关闭显示M文件执行的每一条命令,函数shg显示图形窗口
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1