matlab三维二维离散曲面画图教程

合集下载

MATLAB学习——三维曲面图像绘制

MATLAB学习——三维曲面图像绘制

MATLAB学习——三维曲⾯图像绘制最近⾼数在学曲⾯,机导在学Matlab, 于是研究了⼀下怎么⽤Matlab画三维曲⾯,来分享⼀下~在Matlab中绘制三维图像可以分为三个步骤:1)⽣成平⾯⽹格数据。

在Matlab中的图形绘制本质上就是描点作图法。

在开始绘图之前,需要先在XY平⾯上⽣成⼀张平⾯⽹格数据,把平⾯分成⼀个⼀个⼩格⼦,作为描点的基础。

这⼀步⽤到的是meshgrid()函数。

meshgrid()接受两个参数x和y。

x和y是两个矩阵,x ij代表⽹格上第i⾏第j列位置的横坐标,y ij代表⽹格上第i⾏第j列位置的纵坐标。

根据x 和y便能确定⼀张平⾯数据⽹格了。

若只传⼀个参数,则默认x=y。

⽰例如下:t1=-10:0.5:10;t2=-5:0.5:-5;[X,Y] = meshgrid(t1,t2);2)设置函数⽅程。

可以是⼀般⽅程,也可以是参数⽅程。

3)调⽤绘图函数把图像画出来。

如果是⼀般⽅程的形式,可以⽤mesh()函数,surf()函数或plot3()函数。

函数接受三个参数,分别表⽰横,纵和竖坐标。

mesh()所绘制图像,线条有颜⾊,线条之间⽆填充;surf()函数线条为⿊⾊,线条之间有填充;plot()函数实际由⼀条⼀条三维曲线组合⽽成,不形成⽹格。

如果是参数⽅程形式,在函数名前⾯加个f就好啦,即调⽤fmesh(), fsurf()和fplot3()。

下⾯是⼀个⼀般⽅程形式的例⼦:t=-20:0.8:20;[X,Y]=meshgrid(t);Z=X.^2+Y.^2-Z.^2;subplot(1,3,1); %⼦图,可以让多张图同时显⽰mesh(X,Y,Z);subplot(1,3,2);surf(X,Y,Z);subplot(1,3,3);plot3(X,Y,Z);grid on; %表⽰显⽰⽹格,可以让图像看得更清楚结果如下:下⾯是⼀个参数⽅程的例⼦:funx=@(u,v)u.*sin(v);funy=@(u,v)-u.*cos(v);funz=@(u,v) v;fmesh(funx,funy,funz);结果如下:此外,Matlab还提供了专门绘制标准三维曲⾯的函数,⽐如sphere()和cylinder()。

使用matlab绘制三维图形的方法

使用matlab绘制三维图形的方法

使用matlab绘制三维图形的方法要使用MATLAB绘制三维图形,首先需要了解MATLAB中的三维绘图函数和绘图选项。

下面将介绍一些常用的绘制三维图形的方法。

1.绘制基本的三维图形要绘制基本的三维图形,可以使用以下函数:- plot3(函数:用于在三维坐标系中绘制线条。

- scatter3(函数:用于在三维坐标系中绘制散点图。

- surf(函数:用于绘制三维曲面图。

- mesh(函数:用于绘制三维网格图。

- bar3(函数:用于绘制三维条形图。

- contour3(函数:用于绘制三维等高线图。

例如,下面的代码演示了如何使用plot3(函数绘制一个三维线条图:```x = linspace(0, 2*pi, 100);y = sin(x);z = cos(x);plot3(x, y, z, 'LineWidth', 2);xlabel('X');ylabel('Y');zlabel('Z');title('3D Line Plot');```2.添加颜色和纹理在绘制三维图形时,可以使用颜色和纹理来增加图形的信息。

MATLAB 提供了一系列函数来处理颜色和纹理,如:- colormap(函数:用于设置颜色映射。

- caxis(函数:用于设置坐标轴范围。

- shading(函数:用于设置颜色插值方法。

- texturemap(函数:用于设置纹理映射方法。

例如,下面的代码展示了如何使用纹理映射来绘制一个球体:```[X, Y, Z] = sphere(50);C = colormap('jet');surface(X, Y, Z, 'FaceColor', 'texturemap', 'CData', C);axis equal;```3.绘制多个数据集要在同一张图中绘制多个数据集,可以使用hold on和hold off命令。

Matlab绘制曲面

Matlab绘制曲面

Matlab绘制曲⾯本⽂整理了⼀些三维绘图的内容,代码都⽐较简单1、surf、surfc、surfl之后可以试试shading interp2、绘制隐函数3、参数⽅程绘制曲⾯4、三维到平⾯:等⾼线+引⼒线5、快速绘制球⾯(椭球⾯)6、绘制旋转⾯7、绕轴旋转8、分段曲⾯1、surf、surfc、surfl之后可以试试shading interp>> [X Y]=meshgrid(linspace(-2,2),linspace(-2,2));>> Z=exp(-X.^2-Y.^2);>> subplot(2,1,1);surf(X,Y,Z);subplot(2,1,2);surf(X,Y,Z);shading interp2、绘制隐函数⼆维使⽤ezplot,三维使⽤ezimplot3(需安装)>> f1='x^2+(y-(x^2)^(1/3))^2-1';f2='x*sin(y+z^2)+y^2*cos(x+z)+z*x*cos(z+y^2)';>> subplot(1,2,1);ezplot(f1,[-1,1,-1,1.6]);subplot(1,2,2);ezimplot3(f2,[-1,1])3、参数⽅程绘制曲⾯莫⽐乌斯环,其中u、v是参数>> syms u v;>> x=cos(u)+v*cos(u)*cos(u/2);>> y=sin(u)+v*sin(u)*cos(u/2);>> z=v*sin(u/2);>> ezsurf(x,y,z,[0,2*pi,-0.5,0.5])4、三维到平⾯:等⾼线+引⼒线>> syms x y;z(x,y)=(x^2-2*x)*exp(-x^2-y^2-x*y);>> zx=diff(z,x);zy=diff(z,y);>> [X,Y]=meshgrid(-3:.1:2,-2:.1:2);Z=double(z(X,Y));>> ZX=double(zx(X,Y));ZY=double(zy(X,Y));>> subplot(1,2,1);surf(X,Y,Z);shading interp;zlim([-0.7 1.5]);>> subplot(1,2,2);contour(X,Y,Z,30);>> hold on;quiver(X,Y,-ZX,-ZY)5、快速绘制球⾯(椭球⾯)[x y z]=sphere(50);surf(x,y,z);%单位球⾯,50多⾯形数量(越多图越精确)%修改x、y、z可以作出任意位置的球、椭球%当然前⾯的隐函数也可以绘制6、绘制旋转⾯⽣成柱⾯的⽅程r1(z)=1,0<z<1r2(z)=e−z22sin z,−1<z<3r(z) 表⽰到曲⾯上z坐标的点到z轴的距离>> subplot(1,2,1);[x,y,z]=cylinder(1);surf(x,y,z) >> subplot(1,2,2);>> z0=-1:0.1:3;r=exp(-z0.^2/2).*sin(z0);>> [x,y,z]=cylinder(r);>> z=-1+4*z;surf(x,y,z);7、绕轴旋转以六中的图2为例>> z0=-1:0.1:3;r=exp(-z0.^2/2).*sin(z0);>> [x,y,z]=cylinder(r);z=-1+4*z;h=surf(x,y,z);>> r_ax=[0 0 1] %该点与坐标原点的连线为旋转轴>> axis tight; %保证尺度不变>> for i=0:360rotate(h,r_ax,1);pause(0.02),end%循环结构每0.02s转动1°,循环360次8、分段曲⾯p(x1,x2)={0.5457e−0.75x22−3.75x21−1.5x1,x1+x2>10.7575e−x22−6x21,−1<x1+x2⩽>> [x y]=meshgrid(-1:.04:1,-2:.04:2);>> z=0.5457*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1)+...0.7575*exp(-y.^2-6*x.^2)&((x+y>-1)&(x+y)<=1)+...0.5457*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<-1);>> surf(x,y,z);shading flat;Loading [MathJax]/jax/element/mml/optable/SuppMathOperators.js。

MATLAB二维与三维绘图

MATLAB二维与三维绘图
X=0:0.1:2*pi; Plot(x,sin(x)); Hold on; Plot(x,cos(x)); Hold off; Plot(x,tan(x));
4. 图形窗口的分割 subplot函数的调用格式为: subplot(m,n,p)
n
p
m
4. 图形窗口的分割 subplot函数的调用格式为: subplot(m,n,p) 例5.7 在一个图形窗口中以子图形式同时绘制 正弦、余弦、正切、余切曲线。 程序如下:
例5.4 用不同标度在同一坐标内绘制曲 线y1=e-0.5xsin(2πx)及曲线y2=1.5e0.1xsin(x)。
5.1.2 绘制图形的辅助操作 1. 图形标注 有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,…)
t=0:pi/50:2*pi; x=8*cos(t); y=4*sqrt(2)*sin(t); z=-4*sqrt(2)*sin(t); plot3(x,y,z,'p'); title('Line in 3-D Space');text(0,0,0,'origin'); xlabel('X'),ylabel('Y'),zlabel('Z');grid;
5.1.3 绘制二维图形的其他函数 1. 其他形式的线性直角坐标图 在线性直角坐标系中,其他形式的图形有条形图 、阶梯图、杆图和填充图等,所采用的函数分 别是: bar(x,y,选项) 与plot参数相同 stairs(x,y,选项) stem(x,y,选项) fill(x1,y1,选项1,x2,y2,选项2,…)

MATLAB画图(包括二维三维画图)

MATLAB画图(包括二维三维画图)

Matla‎b教程2_‎绘图_ 二维0Matla‎b绘图Matla‎b二维图形的‎绘制本章主要介‎绍2维图形‎对象的生成‎函数及图形‎控制函数的‎使用方法,还将简单地介绍‎一些图形的‎修饰与标注‎函数及操作‎和控制MA‎T LAB各‎种图形对象‎的方法.第一节图形窗口与‎坐标系一.图形窗口1.MATLA‎B在图形窗‎口中绘制或‎输出图形,因此图形窗‎口就像一张‎绘图纸.2. 在MATL‎A B下,每一个图形‎窗口有唯一‎的一个序号‎h,称为该图形‎窗口的句柄.MATLA‎B通过管理‎图形窗口的‎句柄来管理‎图形窗口;3.当前窗口句‎柄可以由M‎A TLAB‎函数gcf‎获得;4.在任何时刻‎,只有唯一的‎一个窗口是‎当前的图形‎窗口(活跃窗口);figur‎e(h)----将句柄为h‎的窗口设置‎为当前窗口‎;5.打开图形窗‎口的方法有‎三种:1)调用绘图函数时‎自动打开;2)用File‎---New---Figur‎e新建;3)figur‎e命令打开‎,close‎命令关闭.在运行绘图‎程序前若已‎打开图形窗‎口,则绘图函数‎不再打开,而直接利用‎已打开的图形‎窗口;若运行程序‎前已存在多‎个图形窗口,并且没有指‎定哪个窗口为当前窗‎口时,则以最后使‎用过的窗口‎为当前窗口‎输出图形.6.窗口中的图‎形打印:用图形窗口‎的File‎菜单中的Prin‎t项.7.可以在图形‎窗口中设置‎图形对象的‎参数.具体方法是‎在图形窗口‎的Edit‎菜单中选择P‎r oper‎t ies项‎,打开图形对象的参‎数设置窗口‎,可以设置对‎象的属性.二.坐标系1.一个图形必‎须有其定位‎系统,即坐标系;2.在一个图形‎窗口中可以‎有多个坐标‎系,但只有一个‎当前的坐标‎系;3.每个坐标系‎都有唯一的‎标识符,即句柄值;4.当前坐标系‎句柄可以由‎MATLA‎B函数gc‎a获得;5.使某个句柄‎标识的坐标‎系成为当前‎坐标系,可用如下函‎数:axes(h) h为指定坐标系句‎柄值.6.一些有关坐‎标轴的函数‎:1)定义坐标范‎围:一般MAT‎L AB自动‎定义坐标范‎围,如用户认为‎设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定‎;2) 坐标轴控制‎:MATLA‎B的缺省方‎式是在绘图‎时,将所在的坐‎标系也画出‎来,为隐去坐标‎系,可用axi‎s off;axis on则显示‎坐标轴 (缺省值).3)通常MAT‎L AB的坐‎标系是长方‎形,长宽比例大‎约是 4:3,为了得到一‎个正方形的坐‎标系可用:axis squar‎e4)坐标系横纵‎轴的比例是‎自动设置的‎,比例可能不‎一样,要得到相同‎比例的坐标系,可用: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的每‎列数据作为‎一组绘图数‎据.例:下面的程序‎可同时绘出‎三条曲线.MATLA‎B在绘制多‎条曲线时,会按照一定的‎规律自动变‎化每条曲线‎的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(3,:)=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';plot(x,y)在这个例子‎中,x------ 3x101‎,y------3x101‎,所以第一个‎p lot按‎列画出 101条曲‎线,每条3个点‎;而x'------101x3‎,y'------ 101x3‎,所以第二个‎p lot 按列画出3‎条曲线,每条101‎个点.3. 多组变量绘‎图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的pl‎o t格式中‎,选项是指为‎了区分多条‎画出曲线的‎颜色,线型及标记‎点而设定的曲‎线的属性.MATLA‎B在多组变‎量绘图时,可将曲线以‎不同的颜色‎,不同的线型‎及标记点表‎示出来.这些选项如下‎表所示:各种颜色属‎性选项'r' 红色'm' 粉红'g' 绿色'c' 青色'b' 兰色'w' 白色'y' 黄色'k' 黑色各种线型属‎性选项'-' 实线'--' 虚线':' 点线'-.' 点划线'.' 用点号绘制‎各数据点'^' 用上三角绘‎制各数据点‎'+' 用'+'号绘制各数‎据点'v' 用下三角绘‎制各数据点‎'*' 用'*'号绘制各数‎据点'>' 用右三角绘‎制各数据点‎' .' 用'.'号绘制各数‎据点'<' 用左三角绘‎制各数据点‎'s'或squa‎r用正方形绘‎制各数据点‎'p' 用五角星绘‎制各数据点‎'d'或diam‎o nd用菱‎形绘制各数‎据点'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注:在MATL‎A B中,如画图前已‎有打开的图‎形窗口,则再画图系‎统将自动擦掉坐标系中‎已有的图形‎对象,但设置了h‎o ld on后,可以保持坐‎标系中已绘‎出的图形.还可以进一‎步设置包括‎线的宽度(LineW‎i dth),标记点的边‎缘颜色(Marke‎r Edge‎C olor‎),填充颜色 (Marke‎r Face‎C olor‎)及标记点的大‎小(Marke‎r Size‎)等其它绘图‎属性.例:设置绘图线‎的线型,颜色,宽度,标记点的颜色及‎大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineW‎i dth',2,... %设置线的宽‎度为2'Marke‎r Edge‎C olor‎','k',... %设置标记点‎边缘颜色为‎黑色'Marke‎r Face‎C olor‎','y',... %设置标记点‎填充颜色为‎黄色'Marke‎r Size‎',10) %设置标记点‎的尺寸为1‎04. 双Y轴绘图‎:ploty‎y()函数.其调用格式‎为:ploty‎y(x1,y1,x2,y2)绘制由x1‎,y1和x2‎,y2确定的‎两组曲线,其中x1, y1的坐标‎轴在图形窗‎口的左侧,x2,y2的坐标‎轴在图形窗口的‎右侧.Ploty‎y(x1,y1,x2,y2, 'funct‎i on1','funct‎i on2')功能同上,funct‎i on是指‎那些绘图函数,如plot‎,semil‎o gx, loglo‎g等.例如:在一个图形‎窗口中绘制‎双Y轴曲线‎.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;ploty‎y(x,y,x,y,'plot','stem')stem: 绘制ste‎m形式的曲‎线(上端带圈的‎竖线).绘图结果:两条图线自‎动用不同的‎颜色区分,两个坐标的‎颜色与图线‎的颜色相对应,左边的Y轴‎坐标对应的‎是plot‎形式的曲线‎,右边的Y坐‎标对应的是stem‎形式的曲线‎.二.对数坐标图‎绘制函数:在对数坐标‎图的绘制中‎,有三种绘图‎函数:semil‎o gx,semil‎o gy和l‎o glog‎函数.1) semil‎o gx( )绘制以X轴‎为对数坐标‎轴的图. 调用格式为‎:semil‎o gx(x,y,'属性选项') 其中属性选项‎同plot‎函数.该函数只对‎横坐标进行‎对数变换,纵坐标仍为‎线性坐标.2) semil‎o gy( )绘制以Y轴‎为对数坐标‎轴的图. 调用格式为‎:semil‎o gy(x,y,'属性选项')该函数只对纵‎坐标进行对‎数变换,横坐标仍为‎线性坐标. 35 3) loglo‎g( )绘制X,Y轴均为对‎数坐标轴的‎图形. 其调用格式‎为:loglo‎g(x,y,'属性选项') 该函数分别‎对横,纵坐标都进‎行对数变换‎.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subpl‎o t(221), semil‎o gx(x,y);subpl‎o t(222), semil‎o gy(x,y);subpl‎o t(223), loglo‎g(x,y);4) logsp‎a ce( )函数可按对数等‎间距地分布来产生一‎个向量,其调用格式‎为: x=logsp‎a ce(x1,x2,n)这里,x1 表示向量的‎起点;x2表示向‎量的终点;n表示需要‎产生向量点‎的个数(一般可以不‎给出,采用默认值‎50).在控制系统‎分析中一般‎采用这种方法来构成‎频率向量w‎.关于它的应‎用后面还要讲到.三.极坐标图的‎绘制函数:绘极坐标图‎可用pol‎a r( )函数.其调用格式‎如下:polar‎(theta‎, rho,'属性选项')theta‎:角度向量,rho:幅值向量,属性内容与pl‎o t函数基‎本一致.例如:极坐标模型‎为:3145/)/)cos((+ =θρ,],[πθ80∈则绘出极坐‎标图的程序‎为:theta‎=0:0.1:8*pi;p=cos((5*theta‎)/4)+1/3;polar‎(theta‎,p)四. 绘制多个子‎图:subpl‎o t( )函数MATLA‎B允许在一‎个图形窗口‎上绘制多个‎子图(如对于多变‎量系统的输出),允许将窗口‎分成nxm‎个部分.分割图形窗‎口用sub‎p lot函‎数来实现,其调用格式‎为:subpl‎o t(n,m,k) 或subp‎l ot(nmk)n,m分别表示‎将窗口分割‎的行数和列‎数,k表示要画‎图部分的代‎号,表示第几个‎图形,nmk三个‎数可以连写‎,中间不用符号分开.例如:将窗口划分‎成2x2=4个部分,可以这样写‎:subpl‎o t(2,2,1),plot(……)subpl‎o t(2,2,2),……subpl‎o t(2,2,3),……subpl‎o t(2,2,4),……注:subpl‎o t函数没‎有画图功能‎,只是将窗口‎分割.第三节图形的修饰‎与标注MATLA‎B提供了一‎些特殊的函‎数修饰画出‎的图形,这些函数如‎下: 1)坐标轴的标‎题:title‎函数其调用格式‎为:title‎('字符串')字符串可以‎写中文如:title‎('My own plot')2)坐标轴的说‎明:xlabe‎l和yla‎b el函数‎格式:xlabe‎l('字符串') ylabe‎l(' 字符串')如:xlabe‎l('This is my X axis') ylabe‎l('My Y axis')3)图形说明文字:text和‎g text‎函数A.text函‎数:按指定位置‎在坐标系中‎写出说明文‎字.格式为:text(x1, y1, '字符串', '选项')x1,y1为指定‎点的坐标;'字符串'为要标注的‎文字;'选项'决定x1,y1 的坐标单位,如没有选项‎,则x1,y1的坐标‎单位和图中‎一致;如选项为'sc', 则x1,y1表示规‎范化窗口的‎相对坐标,其范围为0‎到1. (1,1)规范化窗口‎(0,0)如:text(1,2, '正弦曲线')B.gtext‎函数:按照鼠标点‎按位置写出‎说明文字.格式为:gtext‎('字符串')当调用这个‎函数时,在图形窗口‎中出现一个‎随鼠标移动‎的大十字交叉线, 移动鼠标将‎十字线的交‎叉点移动到‎适当的位置‎,点击鼠标左‎键,gtext‎参数中的字‎符串就标注‎在该位置上‎.5) 给图形加网‎格:grid函‎数在调用时直‎接写gri‎d即可.上面的函数‎的应用实例‎:例: 在图形中加‎注坐标轴标‎识和标题及‎在图形中的‎任意位置加‎入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid, axis([0 2*pi -1 1]);xlabe‎l('0 leq itt rm leq pi','FontS‎i ze',12);ylabe‎l('sin(t)','FontS‎i ze',12);title‎('正弦函数图‎形','FontN‎a me',' 隶书' ,'FontS‎i ze',16); text(pi,sin(pi),'←sin(t)=0','FontS‎i ze',12);text(3*pi/4,sin(3*pi/4),'←sin(t)=0.707', 'FontS‎i ze',12); text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707→','FontS‎i ze',12,'Horiz‎o ntal‎A lign‎m ent','right‎')5) 在图形中添‎加图例框:legen‎d函数其调用格式‎为:A.legen‎d('字符串1', '字符串2', ……)以字符串1‎,字符串2……作为图形标‎注的图例.B.legen‎d('字符串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,'-*') legen‎d('曲线1','曲线2','曲线3')6) 用鼠标点选‎屏幕上的点‎:ginpu‎t函数格式为: [x, y, butto‎n]=ginpu‎t(n)n为所选择‎点的个数;x,y均为向量‎,x为所选n‎个点的横坐‎标; y为所选n‎个点的纵坐标‎.butto‎n为n维向‎量,是所选n个‎点所对应的‎鼠标键的标‎号: 1----左键; 2----中键; 3----右键. 可用不同的‎鼠标键来选‎点,以区别所选‎的点.此语句可以‎放在绘图语‎句之后,它可在绘出‎的图形上操‎作,选择你所感‎兴趣的点,如峰值点,达到稳态值‎的点等,给出点的坐‎标,可求出系统‎的性能指标.第四节 MATLA‎B下图形对‎象的修改MATLA‎B图形对象‎是指图形系‎统中最基本‎,最底层的单‎元,这些对象包‎括:屏幕(Root),图形窗口(Figur‎e s),坐标轴(Axes),控件(Uicon‎t rol),菜单(Uimen‎u),线(Lines‎),块(Patch‎e s),面(Surfa‎c e),图像 (Image‎s),文本(Text)等等.根据各对象‎的相互关系‎,可以构成如‎下所示的树‎状层次:RootFigur‎e sAxes Uicon‎t rol Uimen‎u Uicon‎t extm‎e nu (对象菜单) Image‎s Line Patch‎Surfa‎c e Text对各种图形‎对象进行修‎改和控制,要使用MA‎T LAB的‎图形对象句‎柄 (Handl‎e).在MATL‎A B中, 每个图形对‎象创立时,就被赋予了‎唯一的标识‎,这个标识就是‎该对象的句‎柄. 句柄的值可‎以是一个数‎,也可以是一‎个矢量.如每个计算‎机的根对象只有一个,它的句柄总‎是0,图形窗口的‎句柄总是正‎整数,它标识了图‎形窗口的序‎号等. 利用句柄可‎以操纵一个‎已经存在的‎图形对象的属性,特别是对指‎定图形对象句柄的操‎作不会影响‎同时存在的‎其它图形对‎象,这一点是非‎常重要的.一.对图形对象‎的修改可以‎用下面函数‎:1)set函数‎:用于设置句‎柄所指的图‎形对象的属‎性.Set函数‎的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……)例:h=plot(x,y)set(h, 'Color‎', [1,0,0])------将句柄所指‎曲线的颜色‎设为红色.2)get函数‎:获取指定句‎柄的图形对‎象指定属性‎的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolo‎r')------获得X轴的‎当前颜色属‎性值.执行后可返‎回X轴的当‎前颜色属性‎值[0,0,0](黑色).3)如果没有设‎置句柄,则可以使用‎下列函数获‎得:gcf:获得当前图‎形窗口的句柄;gca:获得当前坐‎标轴对象的‎句柄;gco:获得当前对‎象的句柄.如:A. 要对图形窗‎口的底色进‎行修改,可用set‎(gcf, 'Color‎', [1,1,1])------将图形窗口‎底色设为白‎色B. 要把当前X‎轴的颜色改‎为绿色,可用set‎(gca, 'Xcolo‎r', [0,1,0])C. 还可对坐标‎轴的显示刻‎度进行定义‎:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick‎',[-pi:pi/2:pi],'xtick‎l abel‎',['-pi','-pi/2','0','pi /2','pi'])本例中用'xtick‎'属性设置x‎轴刻度的位‎置(从-pi~pi,间隔pi/2,共设置 5个点),用'xtick‎l abel‎'来指定刻度‎的值,由于通常习‎惯于用角度‎度量三角函‎数, 因此重新设‎置['-pi','-pi/2','0','pi/2','pi']5个刻度值‎.二.一些常用的‎属性如下:1)Box属性:决定图形坐‎标轴是否为‎方框形式,选项为'on'(有方框), 'off'(无方框);2)'Color‎O rder‎'属性:设置多条曲‎线的颜色顺‎序,默认值为:[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',其选项为:'norma‎l'------正常'rever‎s e'------反向4) 坐标轴颜色‎和线型属性‎:'Xcolo‎r','Ycolo‎r','Zcolo‎r'------ 轴颜色, 值为颜色向‎量'LineW‎i dth'------ 轴的线宽,值为数字'Xgrid‎','Ygrid‎','Zgrid‎'------坐标轴上是‎否加网格,值为'on'和'off'.5)坐标轴的标‎尺属性:'Xtick‎','Ytick‎','Ztick‎'------ 标度的位置‎,值为向量'Xtick‎l abel‎','Ytick‎l abel‎','Ztick‎l abel‎'------ 轴上标度的‎符号,它的值为与‎标度位置向‎量同样大小(向量个数相‎同)的向量.6)字体设置属‎性:'FontA‎n gle'------ 设置字体角‎度,选项为: 'norma‎l'------ 正常;'itali‎c'------ 斜体;'obliq‎u e'------ 倾斜;'FontN‎a me'------ 字体名称;'FontS‎i ze'------ 字号大小'FontW‎e ight‎'------ 字体的轻重‎,选项为:'light‎', 'norma‎l','bold'Matla‎b绘制三维‎图形三维曲线plot3‎函数与pl‎o t函数用‎法十分相似‎,其调用格式‎为:plot3‎(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组‎x,y,z组成一组‎曲线的坐标‎参数,选项的定义‎和plot‎函数相同。

4 MATLAB二维、三维图形的绘制

4 MATLAB二维、三维图形的绘制

实验四 MATLAB 二维、三维图形的绘制一 实验目的1 掌握二维、三维图形的绘制;2 掌握特殊二维图形的绘制;3 掌握绘图参数的设置;4 了解并学习简单动画的制作。

二 实验内容1 在0-2π区间上画sin(x)和cos(x),要求在同一个图像中,其中cos(x)图像用红色小圆圈表示,并在函数图上标注“y=sin(x)”,“y=cos(x)”,坐标轴标签为“x 轴”,“y 轴”,标题为“正弦余弦函数图像”。

2 绘制函数x 2/32+y 2/42=1的边界。

3 绘制三维曲线⎪⎩⎪⎨⎧=+=+=u z y x u u 3)sin 21()cos 21(,]10,0[∈u 。

4 使用极坐标绘制]2,0[,2sin πθθρ∈=。

5 绘制函数]2,2[,)cos()sin(21122121-∈⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛x x x x x x y y 在上的曲线,数据点用菱形表示,再绘制其对应的等高线。

6 在同一坐标内,分别用不同线型和颜色绘制曲线)4c o s (5.012.0x x e y π-=和)cos(5.022x x e y π-=,标记两曲线交叉点,]2,0[π∈x 。

7 在同一张图中用子图的方式分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。

8 连续函数的可视化:用图形表示调制波形y=sin(t)sin(9t),变量范围以及步长、曲线表示方法均有自己设定,结果图与下图相似,表达意思相同即可。

9 绘制三维曲线图:x=sin(t), y=cos(t), z=cos(2t),参考图例如下,学习使用view 和box函数。

10 用曲面画图表示z=x2+y2,参考图例如下。

matlab基础课程2(绘图)

matlab基础课程2(绘图)

四、MATLAB三维曲面绘图

meshgrid——生成网格矩阵 调用格式:

[X,Y]=meshgrid(x,y)--------生成小矩形顶点的坐
标值矩阵

[X,Y]=meshgrid(x) 等价于[X,Y]=meshgrid(x,x)
例:x=[1,2,3];y=[1,2,3,4]; [X,Y]=meshgrid(x,y)

xlabel(‘String’)
在当前图形的x轴旁边加入文字内容
ylabel(‘String’)
zlabel(‘String’)
在当前图形的y轴旁边加入文字内容
在当前图形的z轴旁边加入文字内容

图形标注gtext

gtext(‘String’)
在鼠标指定位置上标注
说明:使用gtext指令后,会在当前图形上出现一个十字 叉,等待用户选定位置进行标注。移动鼠标到所需位置按 下鼠标左键,Matlab就在选定位置标上文字。
马鞍面、平面及交线
练习: 二维曲线4-4,4-5 p42 例4-9 p47 例4-11,4-12
三维曲线:
p57 例4-22,4-23,4-24
三维曲面:
p60 例4-26,4-28,4-29,4-30

作业:P79 3,5,9
x=[1 2 3]; y=[3 3 1 473 581 4 4 4] plot(x,y)

plot3与plot的 用法相同

x t sin t 例:绘制三维曲线的图像: y t cos t z t
解:matlab命令为:
(0 t 20 )
t=0:pi/10:20*pi; x=t.*sin(t); y=t.*cos(t) ; z=t; plot3(x,y,z)

[VIP专享]MATLAB画图(包括二维三维画图)

[VIP专享]MATLAB画图(包括二维三维画图)

Matlab教程2_ 绘图_ 二维0Matlab绘图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(3,:)=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';plot(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,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标. 353) 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) 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. (1,1)规范化窗口 (0,0)如:text(1,2, '正弦曲线')B.gtext函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线, 移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext参数中的字符串就标注在该位置上.5) 给图形加网格: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',12);ylabel('sin(t)','FontSize',12);title('正弦函数图形','FontName',' 隶书' ,'FontSize',16); text(pi,sin(pi),'←sin(t)=0','FontSize',12);text(3*pi/4,sin(3*pi/4),'←sin(t)=0.707', 'FontSize',12); text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707→','FontSize',12,'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'------ 轴颜色, 值为颜色向量'LineWidth'------ 轴的线宽,值为数字'Xgrid','Ygrid','Zgrid'------坐标轴上是否加网格,值为'on'和'off'.5)坐标轴的标尺属性:'Xtick','Ytick','Ztick'------ 标度的位置,值为向量'Xticklabel','Yticklabel','Zticklabel'------ 轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.6)字体设置属性:'FontAngle'------ 设置字体角度,选项为:'normal'------ 正常;'italic'------ 斜体;'oblique'------ 倾斜;'FontName'------ 字体名称;'FontSize'------ 字号大小'FontWeight'------ 字体的轻重,选项为:'light', 'normal','bold'Matlab绘制三维图形三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

傅里叶变换img=imread('RADU}4W~M9]09V7Q)ZQ5%~7.png');%img=double(img);f=fft2(img); %傅里叶变换f=fftshift(f); %使图像对称r=real(f); %图像频域实部i=imag(f); %图像频域虚部margin=log(abs(f)); %图像幅度谱,加log便于显示phase=log(angle(f)*180/pi); %图像相位谱l=log(f);subplot(2,2,1),imshow(img),title('源图像');subplot(2,2,2),imshow(l,[]),title('图像频谱');subplot(2,2,3),imshow(margin,[]),title('图像幅度谱');subplot(2,2,4),imshow(phase,[]),title('图像相位谱');/s/blog_1667198560102wmzu.html傅里叶变换I = imread('RADU}4W~M9]09V7Q)ZQ5%~7.png'); %读入数字图像I = rgb2gray(I);%将图像进行灰度处理J = fft2(I);%将图像实行傅里叶变换figure,imshow(I);%这里能得到频谱图J = fftshift(J);figure,imshow(log(abs(J)),[]); %将频谱平移J(abs(J)<5)=0;%不必要的过滤掉figure,imshow(log(abs(J)+eps),[]);J = ifftshift(J);K = ifft2(J);figure,imshow(K,[0 255]);%傅里叶逆变换自己所写的代码I = imread('RADU}4W~M9]09V7Q)ZQ5%~7.png'); %读入数字图像J = fft2(I); %将图像实行傅里叶变换figure,imshow(I); %这里能得到频谱图J = fftshift(J);figure,imshow(log(abs(J)),[]); %将频谱平移J(abs(J)<5)=0; %不必要的过滤掉figure,imshow(log(abs(J)+eps),[]);J = ifftshift(J);K = ifft2(J);ss=real(ifft2(J));sss=uint8(ss);subplot(1,2,2);imshow(sss)figure,imshow(K,[0 255]); %傅里叶逆变换A=imread('12.png'); %载入图片A=rgb2gray(A)B=fftshift(fft2(A)); % 进行傅立叶变换subplot(231)imshow(A);title('原始图像');subplot(232)imshow(abs(B),[ ]);title('原始频谱图');subplot(233)imshow(log(abs(B)),[ ]);title('取对数后的频谱图');subplot(234)imshow(angle(B),[ ]);title('相位图');subplot(235)imshow(real(B),[ ]);title('实部图');subplot(236)imshow(imag(B),[ ]);title('虚部图');colormap(jet(64)) %给图片上色图像处理程序处理将vtx变成txt然后加载load '12吧.txt';提取出高程行均值①a=load('z.txt');mean(a)②a=load('z.txt');lzz=length(a);ra=sum(abs(a))/lzz标准差>> a=load('z.txt');sd=std(a)断面深度均方根:a=load('z.txt');lzz=length(a);rq=sqrt(sum(a.^2)/lzz)断面平均斜率b=load('z.txt');a=b';dz=abs(a(2:end)-a(1:end-1));d=load('x.txt');c=d';dy=abs(c(2:end)-c(1:end-1));sl ope_x=dz./dy;极差a=load('z.txt');rangA=max(a)-min(a);偏度a=load('z.txt');pian_du=skewness(a); % 偏度:>0 称为右偏态,<0,称为左偏态驼峰度a=load('z.txt');feng_du=kurtosis(a); % 峰度:用作衡量偏离正态分布的尺度之一平均构造深度(MTD)圆形平常铺沙法(代码实现)a=load('z.txt');zmin=min(a);zmax=max(a);lz=length(a);zzeng=a-zmin;v=sum(zzeng);x=load('x.txt'); y=load('y.txt');d=abs((max(x)-min(x))+ (max(y)-min(y)))/2;mtd=(4*v)/((d^2)*pi)[暂行实现]第一步求面积e=load('x.txt');r=e(30366:30836,1);f=r';q=abs(f(2:end)-f(1:end-1));pingjunx=mean(q);w=load('y.tx t');t=w(30366:30836,1);f=t';p=abs(f(2:end)-f(1:end-1));pingjuny=mean(p);mianji=pingjunx*pingju ny;yy=sqrt((pingjunx)^2+(pingjuny)^2)第二部求mtda=load('z.txt');zmin=min(a);zmax=max(a);lz=length(a);Zzeng=zmax-(a-zmin);zzeng=Zzeng-zmax*0. 07;v=sum(zzeng)*0.002025;x=load('x.txt');y=load('y.txt');d=abs((max(x)-min(x))+(max(y)-min(y)))/2;mtd=(4*v)/((d^2)*pi);其中0.00025是第一步骤中的mianji或者a=load('z.txt');zmin=min(a);zmax=max(a);lz=length(a);zzeng=zmax-(a-zmin);v=sum(zzeng)*0.0007 3875;x=load('x.txt');y=load('y.txt');d=abs((max(x)-min(x))+(max(y)-min(y)))/2;mtd=(4*v)/((d^2)*pi);>> v=100-80.5;d=(20+19.8+20)/3;h=40*v/(pi*d^2)第三部v=100-80.5;d=(20+19.8+20)/3;h=40*v/(pi*d^2)平均断面深度(MPD)A=load('xy.txt');x=A(28369:28854,1);y=A(28369:28854,2);plot(x,y);其中x程序表示选取矩阵A中第1列28369:28854行;y=A(28369:28854,2)表示选取A中第2列28369至28854行。

A=load('yz提取坐标.txt');b=A(63601:63797,2);meanz=mean(b);c=A(63601:63699,2);maxz1=mean(c);d=A(63699:63 797,2);maxz2=mean(d);ppd=((maxz1+maxz2)/2)-meanz;format rational;ppd点云图像删除一列a=load('车辙板跟新.vtx');b=a(:,3)=[]%删除一列Matlab读取特定列(vtx)filename = '12吧.txt';[data1,data2,data3]=textread(filename,'%n%n%n','delimiter', ',');Matlab读取特定行(vtx)跳过某些行d=textread('nmos_vgs.dat', '' , 'headerlines', 3) %意味着读取数据的时候跳过前3行。

将数据读出来并显示大小值、个数、长度;filename = '12吧.txt';[data1,data2,data3]=textread(filename,'%n%n%n','delimiter',',');lx=length(data1);ly=length(data2);lz=length(data3);minx=min(data1);maxx=max(data1);miny= min(data2);maxy=max(data2);minz=min(data3);maxz=max(data3);求zx的斜率a=[1 2 3 4 5 6];b=a(2:end)-a(1:end-1);c=[2 3 4 5 6 7];d=abs(c(2:end)-c(1:end-1));slope_x=b/d;加载a=load('z.txt');b=a(2:end)-a(1:end-1);c=load('x.txt');d=abs(c(2:end)-c(1:end-1));slope_x=b/d; 编程a=[1 2 3 4 5 6];la=length(a);for i=1:la-1;slope_x(1,i)=a(1,i+1)-a(1,i);end;编程z=load('z.txt');lz=length(z);a=abs(load('x.txt'));la=length(a);for i=1:la-1;slope_x(i,1)=abs((z(i+1,1)-z(i,1)/(a(i+1,1)-a(i,1))));end;可实现b=load('z.txt');a=b';b=a(2:end)-a(1:end-1);d=load('x.txt');c=d';qq=abs(c(2:end)-c(1:end-1));slope_ x=b./qq;某一组数据中得到大于某个数的代码a=[1 2 3 4 5 6];b=a(a>3)某组数据统计值x=load('yz.txt');hist(x,1000);%表示多少个直方图画三维点云图像A=load('圆形.vtx');%x,y,z轴坐标x=A(:,1);y=A(:,2);z=A(:,3);scatter3(x,y,z)%散点图figure[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值pcolor(X,Y,Z);shading interp%伪彩色图figure,contourf(X,Y,Z) %等高线图figure,surf(X,Y,Z);%三维曲面划出彩色图A=load('圆形.vtx');m=max(A);n=min(A);x=A(:,1);y=A(:,2);z=A(:,3);[X,Y,Z]=griddata(x,y,z,linspace(n(1),m(1))',linspace(n(2),m(2)), 'cubic');%cubic插值方式可换,具体请参考MATLAB帮助文档对函数griddata的解释figure;pcolor(X,Y,Z);grid on;figure;contourf(X,Y,Z);grid on;figure;mesh(X,Y,Z);grid on;figure;surf(X,Y,Z);grid on;%图形修饰高斯曲率和平均曲率曲面上任意一点都有无数个曲率,其中存在最大和最小值(曲面的两个主曲率之积K=k1k2叫曲面的高斯曲率,两个主曲率的平均值)。

相关文档
最新文档