MATLAB中常见空间曲线和曲面
- 格式:ppt
- 大小:634.50 KB
- 文档页数:21
Matlab绘制三维图形三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同.当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线.当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数.例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t。
*sin(t).*cos(t);plot3(x,y,z);title(’Line in 3—D Space’);xlabel(’X’);ylabel(’Y’);zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵.其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0。
25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))—x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2。
MATLAB程序设计作业陈杰杰2013090302072014-11-3MATLAB具有强大的图形处理功能。
下面给出了3个m脚本文件,请在MA TLAB环境下运行,观察其输出。
要求根据每个m文件输出的图形(共18个),用中文翻译并解释产生每个输出图形的函数具体是什么?其功能是什么?文件1:clear all %清除工作区间所有的变量clf %清除图形窗口的内容mfilename('fullpath') %返回当前正在运行的函数所在文件的文件名(全部路径)echo on %显示M文件执行的每一条命令subplot(2,3,1) %使(2*3)幅子图中第一个子图成为当前图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 Response - (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)进行快速傅里叶变换;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.25); %返回二维数值梯度的U、V部分,这里的0.25指定了沿着梯度的方向取点的间隔为0.25contour(X,Y,Z,10); %绘制矩阵Z的等高线,绘制的等高线被限定在由X、Y指定的区域内,等高线条数为10hold on %保持当前坐标轴和图形,并接受下一次绘制quiver(X,Y,U,V); %使用箭头来直观的显示矢量场,该调用格式表示通过在(X, Y)指定的位置绘制小箭头来表示以该点为起点的向量(U,V)title('Surface Gradient - (CONTOUR & QUIVER)') %将此图命名为Surface Gradient - (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([-13 13 -12.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) %使(2*3)幅子图中第六个子图成为当前图feather(x(1:19),y(1:19)) %绘制羽状图,其中x、y表示一组向量,x是向量的横坐标(x分量),y是向量的纵坐标(y分量)。
matlab 曲率-回复曲率(Curvature)是解析几何学中的一个重要概念,用于描述曲线或曲面的弯曲程度。
在数学和物理学领域,曲率广泛应用于描述物体形状的变化,找到最优曲线路径以及理解空间的几何特性。
而在Matlab中,我们可以通过简单的代码和函数计算曲线或曲面的曲率,从而深入研究和分析形状变化。
本文将以Matlab中的曲率计算为主题,逐步介绍曲率的定义、曲率的计算方法以及在实际应用中的一些例子。
希望通过本文的阐述能够帮助读者理解曲率概念,并且能够灵活运用Matlab进行相关计算和分析。
首先,我们来介绍曲线曲率的计算方法。
在Matlab中,可以使用多种方法计算曲线的曲率,其中最常见的是使用差分法(Difference Method)。
差分法是通过计算曲线上邻近点之间的切线斜率来估计曲率。
计算公式如下:curvature = abs(diff(atan2(diff(y), diff(x))) ./ diff(s));其中,x和y分别表示曲线的坐标点,s表示曲线上点之间的弧长。
这个计算公式基于微积分中的切线概念,通过求取相邻切线之间的夹角来估计曲线的弯曲程度。
值得注意的是,这个方法只适用于平面曲线。
对于空间曲线或曲面,我们需要进一步考虑曲线或曲面在三维空间中的曲率。
在这种情况下,我们可以使用Matlab中的柯西-费尔马方程(Cauchy-Fuerm equation)进行曲面曲率的计算。
柯西-费尔马方程是描述曲面贴合性的一组方程,可以用来计算切线曲率和主曲率。
对于曲面上的一点P(x,y,z),曲率向量k可以通过下述方程计算得到:k = cross(dFdu, dFdv) / norm(cross(dFdu, dFdv));其中,dFdu和dFdv分别表示曲面在参数空间中对参数u和v的偏导数,cross表示向量的叉积,norm表示向量的模。
通过计算这个曲率向量,我们可以得到曲面的切线曲率和主曲率,从而进一步分析曲面的几何特性。
[matlab曲面拟合]matlab曲线拟合篇一: matlab曲线拟合- 非常好非常全面的介绍M拟合的参考资料曲线拟合向导Genial @ USTC 2004-4-18Mathworks Tech-Note 1508 曲线拟合向导1.介绍2.Mathworks 产品的曲线拟合特色a.曲线拟合工具箱b.Matlab 内建函数与其他的带有曲线拟合能力的附加产品c.线性曲线拟合d.非线性曲线拟合3.加权曲线拟合方法a.曲线拟合工具箱b.统计工具箱c.优化工具箱4.利用曲线拟合工具箱提高曲线拟合结果5.其他的相关资料第1节:简介MA TLAB即有内建的解决很多通常遇到的曲线拟合问题的能力,又具有附加这方面的产品。
[]本技术手册描述了几种拟合给定数据集的曲线的方法,另外,本手册还解释了加权曲线拟合、针对复数集的曲线拟合以及其他一些相关问题的拟合技巧。
在介绍各种曲线拟合方法中,采用了典型例子的结合介绍。
第2节:MathWorks产品的曲线拟合特色MA TLAB有可以用于曲线拟合的内建函数。
MathWorks公式也提供了很多工具箱可以用于曲线拟合。
这些方法可以用来做线性或者非线性曲线拟合。
MA TLAB也有一个开放的工具箱――曲线拟合工具箱,她可以用于参数拟合,也可以用于非参数拟合。
本节将介绍曲线拟合工具箱与其他工具箱、以及各种MA TLAB可以用于曲线拟合的内建函数的详细特征。
a.曲线拟合工具箱曲线拟合工具箱是专门为数据集合进行曲线拟合而设计的。
这个工具箱集成了用MA TLAB建立的图形用户界面和M文件函数。
曲线拟合向导Genial @ USTC 2004-4-18? 利用工具箱的库方程或者是用户自定义方程可以进行参数拟合。
[)当你想找出回归系数以及他们背后的物理意义的时候就可以采用参数拟合。
? 通过采用平滑样条或者其他各种插值方法,你就可以进行非参数拟合。
当回归系数不具有物理意义并且不在意他们的时候,就采用非参数拟合方法。
[Matlab绘图][三维图形][三维曲线基本函数+三维曲⾯+其他三维图形]1.绘制三维图形的基本函数最基本的三维绘图函数为plot3;plot3与plot⽤法⼗分相似,调⽤格式:plot(x1,y1,z1,选项1,x2,y2,z2,选项2,...,xn,yn,zn,选项n)当x,y,z是同维向量时,则x,y,z,对应元素构成⼀条三维曲线;当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例:程序如下: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; 运⾏结果:2.三维曲⾯2.1平⾯⽹格坐标矩阵的⽣成 绘制z=f(x,y)所代表的三维曲⾯图,先要在xy平⾯选定⼀个矩形区域,假定矩形区域D=[a,b]*[c,d],然后将[a,b]在x⽅向分成m份,将[c,d]在y⽅向分成n份,由各划分点分别作平⾏于两坐标轴的直线,将区域D分成m*n个⼩矩形,⽣成代表每⼀个⼩矩形顶点坐标的平⾯⽹格坐标矩阵,最后利⽤有关函数绘图。
产⽣平⾯区域内的⽹格坐标矩阵有两种⽅法: 1.利⽤矩阵运算⽣成、x=a:dx:b;y=(c:dy:d)';X=ones(size(y))*x;Y=y*ones(size(x));语句执⾏后,矩阵X的每⼀⾏都是向量x,⾏数等于向量y的元素个数,矩阵Y的每⼀列都是向量y,列数等于向量x的元素个数。
于是对于矩阵X,Y来说,它们位置(i,j)上的元素值(X(i,j),Y(i,j))就是所要形成的平⾯⽹格在位置(i,j)上的X,Y坐标。
实验五 空间曲面及其在坐标面上的投影【实验类型】验证性 【实验学时】2学时 【实验目的】掌握用MA TLAB 绘制空间曲面及其在坐标面上的投影的方法; 【实验内容】1.熟悉MATLAB 绘制三维图形的基本命令和方法; 2.通过MATLAB 演示常见的空间曲面、空间曲线; 【实验方法与步骤】 一、实验的基本理论与方法 1、 描绘空间图形的截痕法(略)。
2、 空间曲线在坐标面上的投影:设曲线L 的方程为⎩⎨⎧==0),,(0),,(z y x G z y x F ,消去z ,得0),,(=z y x H ,则曲线L 在XOY 平面上的投影曲线为⎩⎨⎧==0),(z y x H 。
二、实验使用的MATLAB 函数1、已知二元函数),(y x f z =,绘制其三维曲面图的MATLAB 命令调用格式为:[x,y]=meshgrid(v1,v2); 生成网格数据 z=….;如z=x.*y 计算二元函数的z 矩阵surf(x,y,z)或mesh(x,y,z) mesh()绘制网格图,surf()绘制表面图 其中,v1,v2为x 轴和y 轴的分隔方式。
3、 已知空间曲面的参数方程:⎪⎩⎪⎨⎧===),(),(),(t s z z t s y y t s x x ),(d t c b s a <<<<,绘制其图形的命令格式为: ezsurf('x(s,t)','y(s,t)','z(s,t)',[a,b,c,d]) 三、实验指导例1 画出椭球面1253222222=++z y x 的图形。
椭球面的参数方程为⎪⎩⎪⎨⎧===s z s t y s t x cos 2sin sin 5sin cos 3)0,20(ππ≤≤≤≤t t画出椭球面的图形,如图7-1所示。
ezsurf('3*cos(t).*sin(s)','5*sin(t).*sin(s)','2*cos(s)',[0,2*pi,0,pi]) 例2 画出莫比乌斯(Mobius )带的图形。
文章标题:深入探讨Matlab中plot3的功能和用法一、引言在Matlab中,plot3是一个非常常用且功能强大的函数,它可以在3D空间中绘制出各种图形,包括曲线、曲面和散点图等。
本文将深入探讨plot3函数的功能和用法,帮助读者更加全面、深入地了解和掌握这一重要工具。
二、plot3函数的基本用法在Matlab中,plot3函数的基本语法如下:```matlabplot3(X,Y,Z)```其中,X、Y和Z分别是要绘制的数据点的x、y、z坐标。
通过plot3函数,可以将这些数据点连接成为曲线或曲面,并在3D空间中进行可视化展示。
三、绘制3D曲线通过plot3函数,可以轻松地绘制出3D空间中的曲线。
以绘制螺旋线为例,我们可以使用以下代码:```matlabt = 0:0.1:10;x = sin(t);y = cos(t);z = t;plot3(x,y,z)```通过上述代码,即可在3D空间中绘制出一条螺旋线,令人眼前一亮。
这种绘制3D曲线的功能,为研究和展示曲线在三维空间中的特性提供了极大的便利。
四、绘制3D曲面除了绘制3D曲线,plot3函数还可以用来绘制3D曲面。
以绘制扭曲的正弦曲面为例:```matlab[X,Y] = meshgrid(-2:0.2:2, -2:0.2:2);Z = sin(sqrt(X.^2 + Y.^2));plot3(X,Y,Z)```通过上述代码,可以在3D空间中绘制出一幅扭曲的正弦曲面,展现了plot3函数在绘制3D图形方面的强大威力。
五、绘制3D散点图除了曲线和曲面,plot3函数还可以用来绘制3D散点图。
以绘制三维空间中的散点分布为例:```matlabx = rand(1,100);y = rand(1,100);z = rand(1,100);plot3(x,y,z,'o')```通过上述代码,可以在3D空间中绘制出100个随机生成的散点,并用'o'符号进行标记。
03 函数作图1 平面图形(1)竖直条形图调用格式为:bar(x,y)(2)用描点法绘制函数y f ( x) 随x 从a 到b 间的图形.调用格式为:x=a:h:b ;y=f(x) ;plot(x,y)(3)在同一坐标系下绘制多个函数图形.调用格式为:x=a:h:b ;plot(x,y1,x,y2,…)(4)绘制函数y=f(x)随x 从a 到b 间的图形.调用格式为:explo t(‘f(x)’, [a,b])(5)x 从xa 到xb和y 从ya到yb间隐函数 f ( x, y) 0 的图形.调用格式为:ezplo t(‘x’,’y’,[xa, x b , y a , y b ])(6)绘制t 从ta 到tb间参数方程x x(t ),y y(t )的函数图形.调用格式为:ezplo t(‘x’,’y’,[ta, t b ])(7)在一坐标系下可以绘制一个或多个显函数图形,对变化剧烈的函数,用此命令来进行较精确的绘画.调用格式为:fplot(’fun(x)’,[a,b])fplo t (‘[f1(x),f2(x),…]’,[a,b])其中fun(x)可以是自定义函数,[f1(x),f2(x),…]是函数组.(8)绘制散点图.调用格式为:scatter(x,y)2 空间图形(1)空间曲线.调用格式为:plot3(x,y,z)(2)产生一个以向量x 为行,向量y 为列的矩阵.调用格式为:meshgrid(x,y)(3)空间曲面.调用格式为:surf(x,y,z)(4)网格曲面.调用格式为:mesh(x,y,z)例 1 一次考试成绩0~10 分有0 人,10~20 分有0 人,20~30 分1 人,30~40 分有1 人,50~60 分有2 人,60~70 分有18 人,70~80 分有20 人,80~90 分有9 人,90~100 分有6 人.绘出成绩分析竖直条形图.【matlab 命令】>> x=0:10:90;>> y=[0,0,1,1,0,2,18,20,9,6];>> bar(x,y)【输出结果】20002图1例1输出图像例 2 绘制显函数图形.x(1)设 y 1x 3 2x , y2000 cos2sin x请分别作出这两个函数在区间 x[20,40] 的图像,然后将它们的图像在一个平面直角坐标系中,并判断方程 y 1x 3 2 x 1500cos x2sin x 有几个实数解.(2)在 x[0,4] 上画出分段函数方法一:【matlab 命令】>> x=-20:0.1:40;>> y1=x.^3-35*x.^2+100*x+1500; >> y2=2000*(cos(x/2)-sin(x)); >> figure(1)>> plot(x,y1,'b-'); >> figure(2) >> plot(x,y2,'k');f ( x )32 x 2x 20 x 2 x 2的图像>> figure(3)>> plot(x,y1,'b-',x,y2,'k')【输出结果】图2例2(1)函数y1图3 例 2(1)函数 y 2 输出图像图4例 2(1)函数 y 1 和 y 2 输出图像 从图中知:有 7 个交点,也就是有 7 个实数根.说明:绘制图形着色时,g 表示绿色,r 表示红色,b 表示蓝色,k 表示黑色.方法二:【matlab 命令2】%自定义函数M文件fx1 function y1=fx1(x)y1=x^3-35*x.^2+100*x+1500%自定义函数M文件fx2 function y2=fx2(x)y2=2000*(cos(x/2)-sin(x));Matlab命令窗口输入以下命令: >> figure(1)>> fplot('fx1(x)',[-20,40]); >> figure(2)>> fplot('fx2(x)',[-20,40]); >> figure(3)>> fplot('[fx1(x) , fx2(x)] ', [-20,40]); 【输出结果2】结果同上.【matlab 命令3】>> x=0:0.01:2;>> y=(2*x-x.^2).^(1/3);>> plot(x,y,'k','linewidth',2)>> hold on>> x=2:0.01:4;>> y=x-2;>> plot(x,y,'k','linewidth',2)【输出结果3】图5例2(2)函数f(x)的输出图像例3绘制隐函数和参数方程所确定函数的图形.(1)在x [3,3] 上画隐函数x 2 2 9 的图像.(2)在t [0,2] 上画参数方程x cos3 t ,y sin 3 t 的图像.【matlab 命令1】>> ezplot('x^2+y^2-9',[-3,3])>> axis equal【输出结果1】图6例3(1)输出图像说明:axis on 显示坐标轴,axis off 取消坐标轴,grid on 表示加网格线,grid off 表示不加网格线,clf 清楚图形窗口中的图形.也可以通过编辑图像的方法改变或增加设置,比如在图形窗口中,菜单栏Tools中鼠标选中Edit-Plot,可改变图像的颜色.【matlab 命令2】>> ezplot('cos(t)^3','sin(t)^3',[0,2*pi])【输出结果2】图7例3(2)输出图像例4将图4,5,6,7在同一个图形窗口表现出来.【matlab 命令】clfsubplot(2,2,1)x=-20:0.1:40;y1=x.^3-35*x.^2+100*x+1500;y2=2000*(cos(x/2)-sin(x));plot(x,y1,'b-',x,y2,'k');subplot(2,2,2)x=0:0.01:2;y=(2*x-x.^2).^(1/3);plot(x,y) holdon x=2:0.01:4;y=x-2;plot(x,y)subplot(2,2,3)ezplot('x^2+y^2-9',[-3,3])axis equal subplot(2,2,4)ezplot('cos(t)^3','sin(t)^3',[0,2*pi])【输出结果】图8 例4输出图像例5已知平面内8个散点的坐标(1,15,2,20(3,27(4,36(5,49,(6,65(7,87(8,117,在直角坐标系中绘制点图.【matlab 命令】 clf x=1:8; y=[15.3,20.5,27.4,36.6,49.1,65.6,87.8,117.6]; scatter(x,y,'ko') 【输出结果】图9例6 在区间[0,10] 上画出参数曲线x sin t, y cos t, z t .【matlab 命令】clft=0:pi/50:10*pi;plot3(sin(t),cos(t),t)【输出结果】图10例7画函数Z ( X Y) 2 的图形.【matlab 命令】clfx=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;surf(X,Y,Z)shading flat【输出结果】图11例8画出马鞍曲面Z X 2 Y2 在不同视角的网格图.【matlab 命令】clfx=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=X.^2-Y.^2;mesh(X,Y,Z)【输出结果】图123 习题1.某城市一年12个月的日平均气温(单位: 0C )分别为:-10,-6,5,10,20,25,30,24,22,19,10,6,试画出条形图. 2.作出函数 f ( x )cos(e x ) e x / 2) 在区间 x [4,4] 的图形3.作隐函数 sin( xy ) 0 在 [6,6] 内的图形.cos x 2 x 2 4.已知分段函数 y x x 1 ,作出 15 x 15 的函数图形. 2 sin( x 1) 1x 15.在同一直角坐标系中,作出函数 y5 的图形和函数 x 3 的图形.6.已知sin( x 2 2 )7.绘制空间图形:(墨西哥帽子).x 2 2。
表12 数据点绘图命令:Plot(X,Y,’color_linestyle_marker’),X,Y是同维向量,分别表示点的横坐标与纵坐标;color linestyle markerr(red) 红色g(green) 绿色b(blue) 蓝色y(yellow) 黄色k(black) 黑色w(white) 白色c(cyan) 青色m(magenta) 品红-实线(默认)-- 双画线: 虚线-. 点画线none 无线+ 加号*型号.小黑点o小圆圈(字母)x 交叉号d或diamond菱形s或square正方形p或pentagram正五角星h或hexagram 正六角星^反勾号> 大于号<小于号none 无线函数绘图命令plot(y) ○1当y为向量时,则以y的元素为纵坐标,以相应元素下标为横坐标,绘制连线图○2若y为实矩阵,则按列绘制多条不同色彩的连线图,曲线的根数等于矩阵的列数○3若y为复数矩阵,则分别以每列元素的实部和虚部为纵横坐标绘制多条连线图。
plot(x,y,’-o’) 表示以“O”表示数据点,且点与点之间用短线连接,○1若y和x为同维向量,则以x为横坐标,y为纵坐标绘制连线图。
○2若x是向量,y是有一维和x同维的矩阵,则绘制多条不同色彩的连线图,曲线的根数等于矩阵的另一维,x被作为这些曲线的共同横坐标。
○3如果x为矩阵,y为向量,情况与上相同,只是以y为共同纵坐标。
○4若x和y为同维矩阵,则以x、y对应元素为横纵坐标分别绘制曲线,曲线的条数等于矩阵的列数。
○5若x和y为复数矩阵时,MA TLAB将忽略虚数部分。
plot(X,1Y,1S,X,2Y,2S, (X)nY,nS) 将多条线画在一起ezplot(‘f(x)’,[a,b]) 绘出函数f(x)从a到b区间的图形ezplot(‘f(x,y)’,[a,b,c,d]) 绘出隐函数f(x,y)=0在[a,b]与[c,d]区间上的图形ezplot(‘x(t)’,’y(t)’,[t1,t2]) 在区间[t1,t2]上绘出参数方程x=x(t),y=y(t)的函数图形fplot(‘f(x)’,[a b c d]) 设定x的变化范围为[a,b],y坐标的范围为[c,d]坐标轴修饰axis tight 指定只画指定数据的范围这两个命令可以同时选中,即axis equal tightaxis square 指定两轴显示的长度相同xtick或ytick 自己设置刻度线的位置。
一、设计目的Matlab 有两类绘图命令,一类是直接对图形句柄进行操作的低层绘图命令,另一类是在低层命令基础上建立起来的高层绘图命令。
高层绘图命令简单明了、方便高效。
利用高层绘图函数,用户不需过多考虑绘图细节,只需给出一些基本参数就能得到所需图形。
在三维曲面的绘制中,Matlab提供了meshgrid 函数、mesh waterfall、函数、surf函数、Surfl函数和patch函数。
他们的使用方法基本相同。
在Matlab中,为了表现图形的显示效果,提供了一些控制函数,有视角的控制、光度的控制、色彩的控制和透明度的控制等。
在三维图形的最佳视觉效果中,Matlab提供了两种方法:一是改变观看的角度(视角),二是旋转图形。
视角由函数view控制,旋转有两个指令:rotate和rotate3d。
光照的控制主要有camlight指令、lighting 指令、material函数、light函数、lightangle函数。
色彩控制包括颜色的向量表示、色图、三维表面图形的着色以及浓淡处理。
图形的透明值用0和1之间的值表示,常用alpha来说明。
二、设计思路绘制所代表的三维曲面图,先要在平面选定一矩形区域,假定矩形区域,然后将在方向分成份,将在方向分成份,由各划分点分别作平行于两坐标轴的直线,将区域D分成个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数求对应网格坐标的Z矩阵。
在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b;y=c:d2:d;[X,Y]= meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
当x=y时,meshgrid 函数可写成meshgrid(x)。
当函数不能简单表示出来时,便只能用for循环或while循环来计算z的元素。
MATLAB中绘图命令介绍本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制。
plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x 及y座标。
下例可画出一条正弦曲线:close all;x=linspace(0, 2*pi, 100); % 100个点的x坐标y=sin(x); % 对应的y坐标plot(x,y);小整理:MATLAB基本绘图函数plot: x轴与y轴均为线性刻度(Linear scale)loglog: x轴与y轴均为对数刻度(Logarithmic scale)semilogx: x轴为对数刻度,y轴为线性刻度semilogy: x轴为线性刻度,y轴为对数刻度若要画出多条曲线,只需将座标对依次放入plot函数即可:hold on 保持当前图形,以便继续画图到当前坐标窗口hold off 释放当前图形窗口title(’图形名称’)(都放在单引号内)xlabel(’x轴说明’)ylabel(’y轴说明’)text(x,y,’图形说明’)legend(’图例1’,’图例2’,…)plot(x, sin(x), x, cos(x));若要改变颜色,在座标对後面加上相关字串即可:plot(x, sin(x), 'c', x, cos(x), 'g');若要同时改变颜色及图线型态,也是在座标对後面加上相关字串即可:plot(x, sin(x), 'co', x, cos(x), 'g*');小整理:plot绘图函数的叁数字元、颜色元、图线型态,y 黄色 .点k 黑色o 圆w 白色x xb 蓝色++g 绿色* *r 红色- 实线c 亮青色: 点线m锰紫色-. 点虚线-- 虚线plot3 三维曲线作图图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]);axis函数的功能丰富,其常用的用法有:axis equal :纵横坐标轴采用等长刻度axis square:产生正方形坐标系(默认为矩形)axis auto:使用默认设置axis off:取消坐标轴axis on :显示坐标轴此外,MATLAB也可对图形加上各种注解与处理:xlabel('Input Value'); % x轴注解ylabel('Function Value'); % y轴注解title('Two Trigonometric Functions'); % 图形标题legend('y = sin(x)','y = cos(x)'); % 图形注解grid on; % 显示格线我们可用subplot来同时画出数个小图形於同一个视窗之中:subplot(2,2,1); plot(x, sin(x));subplot(2,2,2); plot(x, cos(x));subplot(2,2,3); plot(x, sinh(x));subplot(2,2,4); plot(x, cosh(x));MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。
Matlab绘制三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
Matlab绘制三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。