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中的三维绘图函数和绘图选项。
下面将介绍一些常用的绘制三维图形的方法。
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绘制曲⾯本⽂整理了⼀些三维绘图的内容,代码都⽐较简单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二维与三维绘图

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教程2_绘图_ 二维0Matlab绘图Matlab二维图形的绘制本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MAT LAB各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MATLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2. 在MATLA B下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MA TLAB函数gcf获得;4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口);figure(h)----将句柄为h的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure新建;3)figure命令打开,close命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File菜单中的Print项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit菜单中选择Pr opert ies项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由MATLAB函数gca获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATL AB自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定;2) 坐标轴控制:MATLAB的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on则显示坐标轴 (缺省值).3)通常MATL AB的坐标系是长方形,长宽比例大约是 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,所以第一个p lot按列画出 101条曲线,每条3个点;而x'------101x3,y'------ 101x3,所以第二个p lot 按列画出3条曲线,每条101个点.3. 多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plo t格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项'r' 红色'm' 粉红'g' 绿色'c' 青色'b' 兰色'w' 白色'y' 黄色'k' 黑色各种线型属性选项'-' 实线'--' 虚线':' 点线'-.' 点划线'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点's'或squar用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamo 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注:在MATLA B中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了ho ld on后,可以保持坐标系中已绘出的图形.还可以进一步设置包括线的宽度(LineWi dth),标记点的边缘颜色(Marker EdgeC olor),填充颜色 (Marker FaceC olor)及标记点的大小(Marker Size)等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWi dth',2,... %设置线的宽度为2'Marker EdgeC olor','k',... %设置标记点边缘颜色为黑色'Marker FaceC olor','y',... %设置标记点填充颜色为黄色'Marker Size',10) %设置标记点的尺寸为104. 双Y轴绘图:plotyy()函数.其调用格式为:plotyy(x1,y1,x2,y2)绘制由x1,y1和x2,y2确定的两组曲线,其中x1, y1的坐标轴在图形窗口的左侧,x2,y2的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'functi on1','functi on2')功能同上,functi on是指那些绘图函数,如plot,semilo gx, 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形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilo gx,semilo gy和lo glog函数.1) semilo gx( )绘制以X轴为对数坐标轴的图. 调用格式为:semilo gx(x,y,'属性选项') 其中属性选项同plot函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2) semilo gy( )绘制以Y轴为对数坐标轴的图. 调用格式为:semilo gy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标. 35 3) loglog( )绘制X,Y轴均为对数坐标轴的图形. 其调用格式为:loglog(x,y,'属性选项') 该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplo t(221), semilo gx(x,y);subplo t(222), semilo gy(x,y);subplo t(223), loglog(x,y);4) logspa ce( )函数可按对数等间距地分布来产生一个向量,其调用格式为: x=logspa ce(x1,x2,n)这里,x1 表示向量的起点;x2表示向量的终点;n表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用pola r( )函数.其调用格式如下:polar(theta, rho,'属性选项')theta:角度向量,rho:幅值向量,属性内容与plo t函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ,],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)四. 绘制多个子图:subplo t( )函数MATLAB允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm个部分.分割图形窗口用subp lot函数来实现,其调用格式为:subplo t(n,m,k) 或subpl ot(nmk)n,m分别表示将窗口分割的行数和列数,k表示要画图部分的代号,表示第几个图形,nmk三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4个部分,可以这样写:subplo t(2,2,1),plot(……)subplo t(2,2,2),……subplo t(2,2,3),……subplo t(2,2,4),……注:subplo t函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB提供了一些特殊的函数修饰画出的图形,这些函数如下: 1)坐标轴的标题:title函数其调用格式为:title('字符串')字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel和ylab el函数格式:xlabel('字符串') ylabel(' 字符串')如:xlabel('This is my X axis') ylabel('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函数在调用时直接写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','FontSi ze',12);ylabel('sin(t)','FontSi ze',12);title('正弦函数图形','FontNa me',' 隶书' ,'FontSi ze',16); text(pi,sin(pi),'←sin(t)=0','FontSi ze',12);text(3*pi/4,sin(3*pi/4),'←sin(t)=0.707', 'FontSi ze',12); text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707→','FontSi ze',12,'Horizo ntalA lignm ent','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),图形窗口(Figure s),坐标轴(Axes),控件(Uicont rol),菜单(Uimenu),线(Lines),块(Patche s),面(Surfac e),图像 (Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFigure sAxes Uicont rol Uimenu Uicont extme nu (对象菜单) Images Line PatchSurfac e Text对各种图形对象进行修改和控制,要使用MAT LAB的图形对象句柄 (Handle).在MATLA 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, '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],'xtickl abel',['-pi','-pi/2','0','pi /2','pi'])本例中用'xtick'属性设置x轴刻度的位置(从-pi~pi,间隔pi/2,共设置 5个点),用'xtickl abel'来指定刻度的值,由于通常习惯于用角度度量三角函数, 因此重新设置['-pi','-pi/2','0','pi/2','pi']5个刻度值.二.一些常用的属性如下:1)Box属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框), 'off'(无方框);2)'ColorO 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',其选项为:'normal'------正常'revers e'------反向4) 坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色, 值为颜色向量'LineWi dth'------ 轴的线宽,值为数字'Xgrid','Ygrid','Zgrid'------坐标轴上是否加网格,值为'on'和'off'.5)坐标轴的标尺属性:'Xtick','Ytick','Ztick'------ 标度的位置,值为向量'Xtickl abel','Ytickl abel','Ztickl abel'------ 轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.6)字体设置属性:'FontAn gle'------ 设置字体角度,选项为: 'normal'------ 正常;'italic'------ 斜体;'obliqu e'------ 倾斜;'FontNa me'------ 字体名称;'FontSi ze'------ 字号大小'FontWe ight'------ 字体的轻重,选项为:'light', 'normal','bold'Matlab绘制三维图形三维曲线plot3函数与plo t函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
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三维曲面绘图
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画图(包括二维三维画图)](https://img.taocdn.com/s3/m/867b77fbd1f34693daef3ee2.png)
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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叫曲面的高斯曲率,两个主曲率的平均值)。