matlab plot画图
- 格式:doc
- 大小:46.00 KB
- 文档页数:10
matlab里面plot用法MATLAB是一款功能强大的编程软件,它提供了很多实用的功能,如绘制图形、数据分析等。
在MATLAB中,plot命令是最常用的绘制图形命令之一,它可以帮助我们绘制各种类型的图形,如折线图、散点图、柱状图等。
本文将详细介绍MATLAB中plot命令的用法。
一、基本用法1. 绘制折线图要使用plot命令绘制折线图,首先需要确定x和y两个变量。
x变量表示横坐标,y变量表示纵坐标。
例如,我们要绘制一组数据的折线图,可以使用以下命令:```matlabx = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];plot(x, y);```这将绘制一条经过点(1, 2)、(2, 4)、(3, 6)、(4, 8)和(5, 10)的折线。
2. 绘制散点图要使用plot命令绘制散点图,同样需要确定x和y两个变量。
例如,我们要绘制一组数据的散点图,可以使用以下命令:```matlabx = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];plot(x, y,'o');```这将绘制一个包含点(1, 2)、(2, 4)、(3, 6)、(4, 8)和(5, 10)的散点图。
'o'表示以点'o'的形式绘制数据点。
3. 绘制柱状图要使用plot命令绘制柱状图,需要确定x和y两个变量,以及一个表示柱子宽度的参数。
例如,我们要绘制一组数据的柱状图,可以使用以下命令:```matlabx = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];bar(x, y);```这将绘制一个包含柱子(宽度分别为2、4、6、8和10)的柱状图,横坐标为[1, 2, 3, 4, 5]。
二、其他用法1. 添加标题和标签要为图形添加标题和标签,可以使用'title'和'xlabel'、'ylabel'命令。
(matlab)plot画图的颜色线型y 黄色 ·点线m 粉红○圈线c 亮蓝 × ×线r 大红++字线g 绿色-实线b 蓝色 * 星形线w 白色:虚线k 黑色-.-- 点划线matlab6.1线形:[ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram ]square 正方形diamond 菱形pentagram 五角星hexagram 六角星用法grid 打开网格线-- 虚线hold on 命令用于在已画好的图形上添加新的图形1 x=0:0.001:10; % 0到10的1000个点(每隔0.001画一个点)的x座标y=sin(x); % 对应的y座标plot(x,y); % 绘图注:matlab画图实际上就是描点连线,因此如果点取得不密,画出来就成了折线图,请试验之2 Y=sin(10*x);plot(x,y,'r:',x,Y,'b') % 同时画两个函数3 若要改变颜色,在座标对后面加上相关字串即可:x=0:0.01:10;plot(x,sin(x),'r')4 若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:plot(x,sin(x),'r*')5 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围axis([0,6,-1.5,1])6 MATLAB也可对图形加上各种注解与处理:(见上表)xlabel('x轴'); % x轴注解ylabel('y轴'); % y轴注解title('余弦函数'); % 图形标题legend('y = cos(x)'); % 图形注解gtext('y = cos(x)'); % 图形注解,用鼠标定位注解位置grid on; % 显示格线7画椭圆a = [0:pi/50:2*pi]'; %角度X = cos(a)*3; %参数方程Y = sin(a)*2;plot(X,Y);xlabel('x'), ylabel('y');title('椭圆')8 绘制函数在0 ≤ x ≤ 1时的曲线。
matlab的plot函数Matlab的plot函数是一种功能强大的绘图工具,可以将数字数据显示为图形和图表。
Plot函数可以绘制多种类型的图形,包括点图,线图,柱状图,区域图,三维图,散点图等。
通过使用Plot函数可以轻松控制图形中点,线,面或网格的可视特性,如颜色,线宽,样式和标记等,以及额外的2D/3D图形特性。
在使用Matlab的Plot函数之前,需要明确建立数据源,并确定绘制的图形类型,可供plot函数使用的数据有列向量,行向量,矩阵,结构体和由结构体构成的数组等。
Matlab中plot函数的基本语法结构为:Plot(X,Y)其中,X和Y是Matlab中绘图函数的两个基本输入参数,分别表示横坐标和纵坐标的数据。
Matlab中plot函数可以接受多个不同类型的输入参数,其中最常用的是线条样式,线条颜色,线条宽度,点标记,点大小,点颜色,标题,图例等。
下面以点图和线图为例,分别介绍其使用方法:1.点图用于建立点图的plot函数:plot(x,y,o其中,x表示x轴上的横坐标数据,y表示y轴上的纵坐标数据,o表示点图样式,可以使用不同的点图符号,如+、*、.等。
另外,plot函数也可以接受其他选项参数,用于修改点图的可视特征,如:plot(x,y,oMarkerSize4,MarkerEdgeColorkMarkerFaceColorb 其中,“MarkerSize”表示点的大小;“MarkerEdgecolor”表示点的边缘颜色;“MarkerFaceColor”表示点的填充颜色。
2.线图用于建立线图的plot函数:plot(x,y,-其中,x表示x轴上的横坐标数据,y表示y轴上的纵坐标数据,-表示线图样式,可以使用不同的线图样式,如“--”“:”“-.”另外,plot函数也可以接受其他选项参数,用于修改线图的可视特征,如:plot(x,y,-LineWidth1.5,Colorb其中,“LineWidth”表示线条的宽度;“Color”表示线条的颜色,可以使用r、g、b、y、c、m等表示颜色。
在MATLAB中,绘制多条曲线是非常常见的需求。
通过绘制多条曲线,我们可以直观地比较不同数据之间的关系,分析数据的变化趋势,从而更好地理解数据的特点和规律。
在本文中,我们将介绍在MATLAB中绘制多条曲线的方法,希望能够帮助读者更加熟练地使用MATLAB进行数据可视化和分析。
一、使用plot函数绘制多条曲线在MATLAB中,最常用的绘制曲线的函数是plot函数。
通过plot函数,我们可以轻松地将多组数据绘制成曲线,并在同一张图上进行比较和分析。
下面是使用plot函数绘制多条曲线的基本步骤:1. 准备数据我们需要准备要绘制的多组数据。
假设我们有两组数据x1和y1,以及另外两组数据x2和y2。
这些数据可以是向量、矩阵,甚至是函数表达式。
2. 绘制曲线接下来,我们可以使用plot函数将数据绘制成曲线。
具体的代码如下所示:```matlab绘制第一组数据plot(x1, y1, 'r-'); 'r-'表示红色实线hold on; 将图形保持在同一张图上绘制第二组数据plot(x2, y2, 'b--'); 'b--'表示蓝色虚线hold off; 取消保持图形在同一张图上```通过以上代码,我们可以将两组数据分别绘制成红色实线和蓝色虚线的曲线,并显示在同一张图上。
这样,我们就可以方便地对两组数据进行比较和分析了。
3. 添加图例和标签我们可以通过legend函数添加图例,通过xlabel和ylabel函数添加坐标轴标签,通过title函数添加图标题,使得图像更加清晰和易懂。
二、使用plot3函数绘制三维曲线除了在二维平面上绘制曲线外,MATLAB还提供了plot3函数用于在三维空间中绘制曲线。
使用plot3函数绘制多条三维曲线的步骤与使用plot函数类似,只是需要将数据扩展到三维空间,并指定绘制的坐标系。
具体的代码如下所示:```matlab准备三维数据[x1, y1, z1] = meshgrid(-2:0.2:2, -2:0.2:2, -2:0.2:2);[x2, y2, z2] = meshgrid(-2:0.2:2, -2:0.2:2, -2:0.2:2);v1 = x1.*exp(-x1.^2 - y1.^2 - z1.^2);v2 = x2.*exp(-x2.^2 - y2.^2 - z2.^2);绘制三维曲线plot3(x1, y1, z1, 'r-', 'LineWidth', 2); 'r-'表示红色实线hold on;plot3(x2, y2, z2, 'b--', 'LineWidth', 2); 'b--'表示蓝色虚线hold off;xlabel('X');ylabel('Y');zlabel('Z');legend('Exp(-x^2 - y^2 - z^2)', 'X*Exp(-x^2 - y^2 - z^2)');title('Three-Dimensional Curve');```通过以上代码,我们可以将两组三维数据绘制成红色实线和蓝色虚线的曲线,并显示在同一张图上。
MATLAB中用plot命令画出示波器的图形总结这两天碰到一个问题是关于用MATLAB命令把示波器图形画出,经过努力总算得到解决。
看到网上有的同行问怎么改示波器的背景,把示波器波形复制到Word 中,我有两种方法,第一种是我一个同学告诉我的,通过命令对示波器进行操作。
具体如下shh = get(0,'ShowHiddenHandles');set(0,'ShowHiddenHandles','On')set(gcf,'menubar','figure')set(gcf,'CloseRequestFcn','closereq')set(gcf,'DefaultLineClipping','Off')set(0,'ShowHiddenHandles',shh)输入以上命令可以直接对示波器进行修改,包括背景和曲线颜色第二种方法我以前总结过,现在详细说明一下用MATLAB命令将simulink示波器的图形画出第一步,将你的示波器的输出曲线以矩阵形式映射到MATLAB的工作空间内。
如图1所示,双击示波器后选择parameters目录下的Data history,将Save data to workspace勾上,Format选择Array,Variable name 即你输入至工作空间的矩阵名称,这里我取名aa。
在这之后运行一次仿真,那么你就可以在MATLAB的工作空间里看到你示波器输出曲线的矩阵aa。
如图2所示。
第二步,用plot函数画出曲线双击曲线矩阵aa,将可以看到详细情况,我这里的aa矩阵是一个1034行,3列的矩阵,观察这个矩阵即可以发现,这个矩阵的第一列是仿真时间,而由于我仿真时示波器内输出的是两条曲线,所以第二列和第三列即分别代表了这2条曲线。
Matlab中使用Plot函数动态画图方法总结Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,下面总结几种方法。
一. AXIS 移动坐标系这种方法是最简单的一种方法,适合于数据已经全部生成的场合,先画图,然后移动坐标轴。
实例代码如下:%%%先画好,然后更改坐标系%在命令行中使用Ctrl+C 结束t=0:0.1:100*pi;m=sin(t);plot(t,m);x=-2*pi;axis([x,x+4*pi,-2,2]);grid onwhile 1if x>max(t)break;endx=x+0.1;axis([x,x+4*pi,-2,2]); %移动坐标系pause(0.1);end二. Hold On 模式此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一幀图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。
例如:%%% Hold On 法% 此种方法只能点,或者分段划线hold offt=0;m=0;t1=[0 0.1]; %要构成序列m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=-1.5*pi;grid on;for i=1:100hold ont=0.1*i; %下一个点m=t-floor(t);t1=t1+0.1; %下一段线(组)m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=x+0.1;axis([x x+2*pi -1.5 1.5]);pause(0.01);end三. Plot 背景擦除模式这种模式比较适合画动画,效率比较高,刷新闪烁小,适合即时数据,最终的Line结构数据完整。
MATLAB图像生成函数Plot()总结一、基本形式(1)>> y=[0 0.58 0.70 0.95 0.83 0.25];>> plot(y)生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。
(2)>> x=linspace(0,2*pi,30); % 生成一组线性等距的数值>> y=sin(x);>> plot(x,y)生成的图形是上30个点连成的光滑的正弦曲线。
二、多重线(1)在同一个画面上可以画许多条曲线,只需多给出几个数组:>> x=0:pi/15:2*pi;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,x,y2)(2)利用hold命令。
在已经画好的图形上,若设置hold on,MATLA 将把新的plot命令产生的图形画在原来的图形上。
而命令hold off 将结束这个过程。
例如:>> x=linspace(0,2*pi,30); y=sin(x); plot(x,y)>> hold on>> z=cos(x); plot(x,z)>> hold off三、线型和颜色MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下:(1)线型线方式: - 实线 :点线 -. 虚点线 - - 波折线。
(2)线型点方式: . 圆点 +加号 * 星号 x x形 o 小圆(3)颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青.以下面的例子说明用法:>> x=0:pi/15:2*pi;>> y1=sin(x); y2=cos(x);>> plot(x,y1,’b:+’,x,y2,’g-.*’)四、改变坐标轴(1)网格和标记在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。
MATLAB中用plot命令画出示波器的图形总结这两天碰到一个问题是关于用MATLAB命令把示波器图形画出,经过努力总算得到解决。
看到网上有的同行问怎么改示波器的背景,把示波器波形复制到Word中,我有两种方法,第一种是我一个同学告诉我的,通过命令对示波器进行操作。
具体如下shh = get(0,'ShowHiddenHandles');set(0,'ShowHiddenHandles','On')set(gcf,'menubar','figure')set(gcf,'CloseRequestFcn','closereq')set(gcf,'DefaultLineClipping','Off')set(0,'ShowHiddenHandles',shh)输入以上命令可以直接对示波器进行修改,包括背景和曲线颜色第二种方法我以前总结过,现在详细说明一下>> set(0,'ShowHiddenHandles','On')>> set(gcf,'menubar','figure')用MATLAB命令将simulink示波器的图形画出第一步,将你的示波器的输出曲线以矩阵形式映射到MATLAB的工作空间内。
如图1所示,双击示波器后选择parameters目录下的Data history,将Save data to workspace 勾上,Format选择Array,Variable name即你输入至工作空间的矩阵名称,这里我取名aa。
在这之后运行一次仿真,那么你就可以在MATLAB的工作空间里看到你示波器输出曲线的矩阵aa。
如图2所示。
第二步,用plot函数画出曲线双击曲线矩阵aa,将可以看到详细情况,我这里的aa矩阵是一个1034行,3列的矩阵,观察这个矩阵即可以发现,这个矩阵的第一列是仿真时间,而由于我仿真时示波器内输出的是两条曲线,所以第二列和第三列即分别代表了这2条曲线。
【matlab基础篇03】⼀⽂带你全⾯了解plot绘图函数的使⽤(超详细+图⽂并茂)快速⼊门matlab,系统地整理⼀遍,如何你和我⼀样是⼀个新⼿,那么此⽂很适合你;⽂章⽬录1 前⾔如果你是和我⼀样的⼩⽩,强烈推荐看看这⾥,需要合理地利⽤官⽅的⽂档,通常我觉得官⽅⽂档是最好的,没有之⼀,在命令终端输⼊help plot,可以看到详细的帮助⽂档;具体如下;>> help plotplot Linear plot.plot(X,Y) plots vector Y versus vector X. If X or Y is a matrix,then the vector is plotted versus the rows or columns of the matrix,whichever line up. If X is a scalar and Y is a vector, disconnectedline objects are created and plotted as discrete points vertically atX.plot(Y) plots the columns of Y versus their index.If Y is complex, plot(Y) is equivalent to plot(real(Y),imag(Y)).In all other uses of plot, the imaginary part is ignored.Various line types, plot symbols and colors may be obtained withplot(X,Y,S) where S is a character string made from one elementfrom any or all the following 3 columns:b blue . point - solidg green o circle : dottedr red x x-mark -. dashdotc cyan + plus -- dashedm magenta * star (none) no liney yellow s squarek black d diamondw white v triangle (down)^ triangle (up)< triangle (left)> triangle (right)p pentagramh hexagramFor example, plot(X,Y,'c+:') plots a cyan dotted line with a plusat each data point; plot(X,Y,'bd') plots blue diamond at each datapoint but does not draw any line.plot(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined bythe (X,Y,S) triples, where the X's and Y's are vectors or matricesand the S's are strings.For example, plot(X,Y,'y-',X,Y,'go') plots the data twice, with asolid yellow line interpolating green circles at the data points.The plot command, if no color is specified, makes automatic use ofthe colors specified by the axes ColorOrder property. By default,plot cycles through the colors in the ColorOrder property. Formonochrome systems, plot cycles over the axes LineStyleOrder property.Note that RGB colors in the ColorOrder property may differ fromsimilarly-named colors in the (X,Y,S) triples. For example, thesecond axes ColorOrder property is medium green with RGB [0 .5 0],while plot(X,Y,'g') plots a green line with RGB [0 1 0].If you do not specify a marker type, plot uses no marker.If you do not specify a line style, plot uses a solid line.plot(AX,...) plots into the axes with handle AX.plot returns a column vector of handles to lineseries objects, onehandle per plotted line.The X,Y pairs, or X,Y,S triples, can be followed byparameter/value pairs to specify additional propertiesof the lines. For example, plot(X,Y,'LineWidth',2,'Color',[.6 0 0])will create a plot with a dark red line width of 2 points.Examplex = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));plot(x,y,'--rs','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',...'MarkerSize',10)与plot相关的函数还有plottools, semilogx, semilogy, loglog, plotyy, plot3, grid,title, xlabel, ylabel, axis, axes, hold, legend, subplot, scatter.2 plot2.1 显⽰正弦波显⽰⼀个简单的正弦函数;x=0:2*pi/100:2*pi;y=sin(x);plot(x,y);2.2 修改颜⾊参数颜⾊bgrcmykw下⾯修改为红⾊:x=0:2*pi/100:2*pi;y=sin(x);plot(x,y,'r');结果如下:2.3 修改点的形状参数形状图标-solido circlex x-mark+plus*stars squared diamondv triangle (down)^triangle (up)<triangle (left)>triangle (right)ppentagram h hexagram参数形状图标将点形状显⽰为六边形;x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'h','MarkerSize',10);结果如下:相关参数:MarkerEdgeColor :点边框颜⾊;MarkerFaceColor :点表⾯颜⾊;MarkerSize :点的⼤⼩;2.4 修改线的形状符号形状:dotted -.dashdot --dashedx=0:2*pi/20:2*pi;y=sin(x);plot(x,y,':','LineWidth',3);LineWidth 的参数为线宽;x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'-.','LineWidth',3);x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'--','LineWidth',3);2.5 多个参数修改下⾯修改多个参数属性显⽰⼀下正弦波;x = 0:2*pi/100:2*pi;y = sin(x);plot(x,y,'--rs','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',... 'MarkerSize',10);结果如下:3 subplotsubplot 的使⽤⽅法如下:subplot Create axes in tiled positions.H = subplot(m,n,p), or subplot(mnp), breaks the Figure windowinto an m-by-n matrix of small axes, selects the p-th axes forthe current plot, and returns the axes handle. The axes arecounted along the top row of the Figure window, then the second row, etc. For example,subplot(2,1,1), PLOT(income)subplot(2,1,2), PLOT(outgo)通俗的讲:subplot(⾏,列,index)注意:plot函数要在subplot表明位置之后再调⽤。
转)plot 画图默认分类 2009-04-30 16:38:02 阅读116 评论0字号:大中小第五讲计算结果的可视化本节介绍MATLAB 的两种基本绘图功能:二维平面图形和三维立体图形。
5.1 二维平面图形5.1.1 基本图形函数plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。
也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制曲线。
当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m× n 矩阵时,就由n 条曲线。
(2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。
(3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘制多条曲线。
例5.1.1 画出一条正弦曲线和一条余弦曲线。
>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,x,y2)图5.1.1 函数plot 绘制的正弦曲线在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可实现它们的功能。
- 2 -表5.1.1 绘图参数表色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式y 黄- 实线. 点< 小于号m 紫:点线o 圆s 正方形c 青-. 点划线x 叉号d 菱形r 红- - 虚线+ 加号h 六角星g 绿* 星号p 五角星b 蓝v 向下三角形w 白^ 向上三角形k 黑> 大于号例如,在上例中输入>> plot(x,y1,'r+-',x,y2,'k*:')则得图5.1.2图5.1.2 使用不同标记的plot 函数绘制的正弦曲线5.1.2 图形修饰MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。
表5.1.2 图形修饰函数表函数含义grid on (/off) 给当前图形标记添加(取消)网络xlable(‘string’) 标记横坐标ylabel(‘string’) 标记纵坐标title(‘string’) 给图形添加标题text(x,y,’string’) 在图形的任意位置增加说明性文本信息gtext(‘string’) 利用鼠标添加说明性文本信息axis([xmin xmax ymin ymax]) 设置坐标轴的最小最大值- 3 -例5.1.2 给例5.1.1 的图形中加入网络和标记。
(见图5.1.3 和5.1.4)>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,x,y2)>> grid on>> xlabel('independent variable X')>> ylabel('Dependent Variable Y1 & Y2')>> title('Sine and Cosine Curve')>> text(1.5,0.3,'cos(x)')>> gtext('sin(x)')>> axis([0 2*pi -0.9 0.9])图5.1.3 使用了图形修饰的plot 函数绘制的正弦曲线5.1.3 图形的比较显示在一般默认的情况下,MATLAB 每次使用plot 函数进行图形绘制,将重新产生一个图形窗口。
但有时希望后续的图形能够和前面所绘制的图形进行比较。
一般来说有两种方法:一是采用hold on(/off)命令,将新产生的图形曲线叠加到已有的图形上;二是采用subplot(m,n,k)函数,将图形窗口分隔成n m×个子图,并选择第k 个子图作为当前图形,然后在同一个视图窗口中画出多个小图形。
例5.1.3 在同一窗口中绘制线段。
(见图5.1.5)>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> y3=x;- 4 ->> y4=log(x);>> plot(x,y1,x,y2)>> hold on>> plot(x,y3)>> plot(x,y4)>> hold off例5.1.4 在多个窗口中绘制图形。
(见图5.1.6)>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> y3=exp(x);>> y4=log(x);>> subplot(2,2,1);>> plot(x,y1);>> subplot(2,2,2);>> plot(x,y2);>> subplot(2,2,3);>> plot(x,y3);>> subplot(2,2,4);>> plot(x,y4);[说明] (1)子窗口的序号按行由上往下,按列从左向右编号。
(2)如果不用指令clf 清除,以后图形将被绘制在子图形窗口中。
图5.1.4 设置坐标轴最大最小值的正弦曲线- 5 -图5.1.5 图形的比较显示(曲线叠加方法)图5.1.6 图形的比较显示(图形窗口分割方法)- 6 -5.2 三维立体图形5.2.1 三维曲线图与二维图形相对应,MATLAB 提供了plot3 函数,可以在三维空间中绘制三维曲线,它的格式类似于plot,不过多了z 方向的数据。
plot3 的调用格式为:plot3(x1,y1,z1,x2,y2,z2,...)其中x1,y1,z1,x2,y2,z2,…等分别为维数相同的向量,分别存储着曲线的三个坐标值,该函数的使用方式和plot 类似,也可以采用多种的颜色或线型(见表5.1.1)来区分不同的数据组,只需在每组变量后面加上相关字符串即可实现该功能。
例5.2.1 绘制方程x=ty=sin(t)z=cos(t)在t=[0,2*pi]上的空间方程。
(见图5.2.1)>> clf>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> plot3(y1,y2,x,'m:p')>> grid on>> xlabel('Dependent Variable Y1')>> ylabel('Dependent Variable Y2')>> zlabel('Independent Variable X')>> title('Sine and Cosine Curve')图5.2.1 函数plot 绘制的三维曲线图- 7 -5.2.2 三维曲面图如果要画一个三维的曲面,可以使用mesh(X,Y,Z)或surf(X,Y,Z)函数来实现。
mesh 函数为数据点绘制网格线,图形中的每一个已知点和其附近的点用直线连接。
surf函数和mesh 的用法类似,但它可以画出着色表面图,图形中的每一个已知点与其相邻点以平面连接。
为方便测试立体绘图,MATLAB 提供了一个peaks 函数,它可以产生一个的高斯分布矩阵,其生成方程是N N ×z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)-1/3*exp(-(x+1).^2-y.^2)对应的图形是一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点。
下面使用peaks 函数来比较一下mesh 和surf 的区别。
例5.2.2 分别用mesh 函数和surf 函数绘制高斯矩阵的曲面。
>> z=peaks(40);>> mesh(z);>> surf(z);图5.2.2 mesh 函数绘制的三维曲面图- 8 -图5.2.3 surf 函数绘制的着色表面图在曲面绘图中,另一个常用的函数是meshgrid 函数,其一般引用格式是:[X, Y]=meshgrid (x, y)其中x 和y 是向量,通过meshgrid 函数就可将x 和y 指定的区域转换成为矩阵X 和Y。
这样我们在绘图时就可以先用meshgrid 函数产生在x-y 平面上的二维的网格数据,再以一组z 轴的数据对应到这个二维的网格,即可画出三维的曲面。
例5.2.3 绘制方程sin((x^2+y^2)^(1/2))z = ---------------------(x^2+y^2)^(1/2)在x∈[-7.5,7.5];y∈[-7.5,7.5] 的图形。
>> x=-7.5:0.5:7.5;y=x;>> [X,Y]=meshgrid(x,y);>> R=sqrt(X.^2+Y.^2)+eps;>> Z=sin(R)./R;>> surf(X,Y,Z)>> xlabel('X 轴方向')>> ylabel('Y 轴方向')>> zlabel('Z 轴方向')(见图5.2.4)_(x^2+y^2)例5.2.4 绘制由方程形成的立体图。
(见图5.2.5)z=xe>> clear>> x=-2:0.1:2;y=x;>> [X,Y]=meshgrid(x,y);>> Z=X.*exp(-X.^2-Y.^2);- 9 ->> surf(X,Y,Z)图5.2.4图5.2.5- 10 -5.2.3 观察点MTALAB 允许用户设置观察点,其指令是:view(azimuth,elevation)其中方位角azimuth 是观察点和坐标原点连线在x-y 平面的投影和y 轴负方向的夹角,仰角elevation 是观察点与坐标原点的连线和x-y 平面的夹角。