2 基本XYZ立体绘图命令

  • mesh和plot是三度空间立体绘图的基本命令,mesh可画出立体网状图,plot则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。下列命令可画出由函数

形成的立体网状图:

x=linspace(-2, 2, 25); % 在x轴上取25点

y=linspace(-2, 2, 25); % 在y轴上取25点

[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵

zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵

mesh(xx, yy, zz); % 画出立体网状图

  • surf和mesh的用法类似:

x=linspace(-2, 2, 25); % 在x轴上取25点

y=linspace(-2, 2, 25); % 在y轴上取25点

[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵

zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是25x25的矩阵

surf(xx, yy, zz); % 画出立体曲面图

  • peaks

为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:

要画出此函数的最快方法即是直接键入peaks:

peaks

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函数取点,再以各种不同方法进行绘图。meshz可将曲面加上围裙:

[x,y,z]=peaks;

meshz(x,y,z);

  • waterfall可在x方向或y方向产生水流效果:

[x,y,z]=peaks;

waterfall(x,y,z);

  • 下列命令产生在y方向的水流效果:

[x,y,z]=peaks;

waterfall(x',y',z');

  • meshc同时画出网状图与等高线:

[x,y,z]=peaks;

meshc(x,y,z);

  • surfc同时画出曲面图与等高线:

[x,y,z]=peaks;

surfc(x,y,z);

  • contour3画出曲面在三度空间中的等高线:

contour3(peaks, 20);

  • contour画出曲面等高线在XY平面的投影:

contour(peaks, 20);

  • plot3可画出三度空间中的曲线:

t=linspace(0,20*pi, 501);

plot3(t.*sin(t), t.*cos(t), t);

亦可同时画出两条三度空间中的曲线:

t=linspace(0, 10*pi, 501);

plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);

3 三维绘图的主要功能

绘制三维线图绘制等高线图绘制伪彩色图绘制三维网线图 绘制三维曲面 图、柱面图和球面图 绘制三维多面体并填充颜色

(一)三维线图

plot3 —— 基本的三维图形指令
调用格式:
plot3(x,y,z) —— x,y,z是长度相同的向量
plot3(X,Y,Z) —— X,Y,Z是维数相同的矩阵
plot3(x,y,z,s) —— 带开关量
plot3(x1,y1,z1,’s1’, x2,y2,z2,’s2’, …)
二维图形的所有基本特性对三维图形全都适用。 定义三维坐标轴大小
axis([xmin xmax ymin ymax zmin zmax ])
grid on(off) 绘制三维网格
text(x,y,z,‘string’) 三维图形标注
子图和多窗口也可以用到三维图形中
例:绘制三维线图
t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),’r:’)

(二)三维饼图

pie3([4 3 6 8 9])

(三)三维多边形

fill3 = fill —— 三维多边形的绘制和填色与二维多边形完全相同调用格式
fill3(x,y,z,‘s’) —— 与二维相同
例: 用随机顶点坐标画出5个粉色的三角形,并用黄色的○表示顶点
y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);
fill3(y1,y2,y3,’m’);hold on;plot3(y1,y2,y3,’yo’)

(四)三维网格图

mesh —— 三维网线绘图函数调用格式:
mesh(z) —— z为n×m的矩阵,x与y坐标为元素的下标
mesh(x,y,z) —— x,,y,z 分别为三维空间的坐标位置
例,矩阵的三维网线图
z=rand(6);
0.8808 0.0729 0.4168 0.7694 0.3775 0.4776
0.3381 0.7101 0.0964 0.6352 0.3826 0.7086
0.1895 0.8791 0.6747 0.8965 0.6876 0.2380
0.7431 0.3594 0.5626 0.8784 0.1217 0.3910
0.7189 0.0899 0.8130 0.4865 0.0768 0.9759
0.8792 0.1610 0.8782 0.1131 0.1433 0.6288
z=round(z)
1 0 0 1 0 0
0 1 0 1 0 1
0 1 1 1 1 0
1 0 1 1 0 0
1 0 1 0 0 1
1 0 1 0 0 1
mesh(z);
例:8阶hadamard矩阵的网线图
h2=[1 1;1 -1];h4=[h2 h2;h2 -h2]
h8=[h4 h4;h4 -h4]
1 1 1 1 1 1 1 1
1 -1 1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1
1 -1 -1 1 1 -1 -1 1
1 1 1 1 -1 -1 -1 -1
1 -1 1 -1 -1 1 -1 1
1 1 -1 -1 -1 -1 1 1
1 -1 -1 1 -1 1 1 -1
mesh(h8)
生成坐标 —— [X,Y]=meshgrid(x,y)
表达式点运算 —— Z=X.^2+Y.^2
X,Y是n×m的矩阵,维数可任 定
X— n
Y— m
Z—
默认方位角:37。5º,俯角30º。
meshgrid—— 网线坐标值计算函数
z=f(x,y) — 根据x,y坐标找出z的高度
例:绘制z=x2+y2的三维网线图形
x=-5:5; y=x;
[X,Y]=meshgrid(x,y)
Z=X.^2+Y.^2
mesh(X,Y,Z)
colormap( [R,G,B])—— 色图设定函数
matlab 的颜色数据集合为红、绿、兰三颜色矩阵[R,G,B],维数 m×3
r,g,b在[0 1]区间连续取值,理论上颜色种类可达无穷多种
matlab使用三维向量表示一种颜色,常用颜色数据见下表 饱和色
[0 0 0] — 黑色
[0 0 1] — 兰色
[0 1 0] — 绿 色
[0 1 1] — 浅兰
[1 0 0] — 红色
[1 0 1] — 粉红
[1 1 0] — 黄 色
[1 1 1] — 白色 调和色
[0.5 0.5 05] — 灰色
[0.5 0 0] — 暗 红色
[1 0.62 0.4] — 铜色
[0.49 1 0.8] — 浅绿
[0.49 1 0.83] —宝石兰

(五)三维曲面图

surf —— 三维曲面绘图函数,与网格图看起来一样
与三维网线图的区别:
网线图:线条有颜色,空挡是黑色的(无颜色)
曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化调用格式:
surf(x,y,z) —— 绘制三维曲面图,x,y,z为图形坐标向量
例:
[X,Y,Z]=peaks(30)
※peaks为matlab
自动生成的三维测
试图形
surf(X,Y,Z)
三维网线图作图要领
surfc(X,Y,Z) — 带等高线的曲面图
[X,Y,Z]=peaks(30);surfc(X,Y,Z)
surfl(X,Y,Z) —— 被光照射带阴影的曲面图
[X,Y,Z]=peaks(30);surfl(X,Y,Z)
cylinde(r,n) — 三维柱面绘图函数
r 为半径;n为柱面圆周等分数
例:绘制三维陀螺锥面
t1=0:0.1:0.9;
t2=1:0.1:2;
r=[t1 -t2+2];
[x,y,z]=cylinder(r,30);
surf(x,y,z);
grid
 为球面等分数,缺省为20
例:绘制三维球面
[x,y,z]=sphere(30);surf(x,y,z);

(六)图形修饰方法

a. 图形颜色的修饰
matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形
colormap(MAP) —— 色图设定函数,MAP为m×3维色图矩阵
图形颜色可根据需要任意生成,也可用matlab配备的色图函数matlab 的色图函数:
hsv —— 饱和值色图
gray —— 线性灰度色图
hot —— 暖色色图
cool —— 冷色色图
bone —— 兰色调灰色图
copper —— 铜色色图
pink —— 粉红色图
prism —— 光谱色图
jet —— 饱和值色图II
flag —— 红、白、蓝交替色图
shading faceted — 网格修饰,缺省方式
shading flat —— 去掉黑色线条,根据小方块的值确定颜色
shading interp —— 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色b. 图形效果修饰
透视与消隐—— 用于网线图
裁剪修饰 ——用于网线图、曲面图
视角修饰 —— 观察不同角度的三维视图其它修饰:
i. 水线修饰
ii. 等高线修饰
透视与消隐
p=peaks(30); mesh(p);hidden on
视角修饰(函数view(az,el))
az ----方位角;el ---- 俯视角
省缺值为:az=-37.5; el=30
例。观察不同视角的波峰图形
z=peaks(40);
subplot(2,2,1);mesh(z);
subplot(2,2,2);mesh(z);view(-15,60);
subplot(2,2,3);mesh(z);view(-90,0);
subplot(2,2,4);mesh(z);view(-7,-10);其它修饰:
i. 水线修饰 (waterfall)
waterfall(peaks(30))
ii. 等高线修饰
二维
contour(Z,n)-------- 绘制n条等高线
C= contourc(Z,n)------计算n条等高线的坐标
Clable(c)------给等高线加标注
例、 在二维平面上绘制peaks函数的10条等高线
contour(peaks,10);
C=contourc(peaks,10);clabel(C)

(七)伪彩色图

pcolor —— 常用于以二维平面图表现三维图形的效果,用颜色表示三维图形的高度。

(八)动画效果

动画生成的步骤
创建帧矩阵 —— moviein
对动画中的每一帧生成图形,并把它们放到帧矩阵中 —— getframe
从帧矩阵中回放动画

matlab 三维 作图 坐标轴_MATLAB学习——MATLAB中的三维绘图指令相关推荐

  1. matlab 三维 作图 坐标轴_matlab三维画图

    matlab三维画图主要有三个命令:plot3命令.mesh命令和surf命令. plot3plot3是三维画图的基本函数,绘制的是最为主要的3D曲线图,最主要的调用格式是: plot3(X,Y,Z) ...

  2. matlab 三维 作图 坐标轴_Matlab编辑三维图坐标的方法

    第一步,首先通过命令得到一副三维图,如下所示: clear; X_M=100; X_space=linspace(-8,8,X_M); P_M=100; P_space=linspace(-8,8,P ...

  3. Matlab实践课心得体会,学习matlab的一点心得体会

    1.前言 2.matlab的一些特点 3.学习matlab心得体会 4.matlab的一些资源 1.前言 我接触Matlab的时间比较长了,最开始是在大学里面的数学实验课上了解了一些,学了些基础的命令 ...

  4. matlab 三维 作图 坐标轴_怎么设置三维图的坐标轴在任意位置

    本帖最后由 liuqun09120102 于 2018-8-30 11:23 编辑 文献中的三维图坐标轴在上方,我自己画出来的坐标轴在下方,我想要文献中三维图的效果,该怎么设置坐标轴位置? 另外怎么像 ...

  5. Matlab作图如何画多曲线子图,多子图绘图指令subplot

    前面用到的plot指令在同一作图区域内重叠作出不同的图形,而subplot可在不同的子图下绘制图形. 1.subplot的基本指令格式: (1)subplot(m,n,k):作出m*n幅子图中的第k幅 ...

  6. matlab stem函数坐标轴_MATLAB中stem函数用法

    stem(Y) 将数据序列Y从x轴到数据值按照茎状形式画出,以圆圈终止.如果Y是一个矩阵,则将其每一列按照分隔方式画出. stem(X,Y)在X的指定点处画出数据序列Y.  stem(...,'fil ...

  7. matlab stem函数坐标轴_在MATLAB中可以设置坐标轴的函数详解

    1.绘制二维曲线的最基本函数plot 2.双纵坐标函数plotyy 3. 坐标控制 函数的调用格式为: axis([xmin xmax ymin ymax zmin zmax]) axis函数功能丰富 ...

  8. 如何利用MATLAB函数绘制三维曲面?系统学习MATLAB三维曲面的绘制

    文章目录 0 前言 1 平面网格数据的生成 2 绘制三维曲面的函数 2.1 mesh函数和surf函数的一般召唤方式 2.2 其他召唤方式 2.3 mesh.surf函数的亲戚朋友 3.标准三维曲面 ...

  9. matlab修改变量名称_MATLAB学习笔记1:如何快速创建多个仅有数字变化变量名?...

    一直以来,本人用MATLAB都是想用什么功能就搜索什么功能,或者查看MATLAB帮助文档.(不得不说MATLAB的帮助文档做得真好) 由于没有系统学习过MATLAB,所以代码都很水-- 好吧,开个文章 ...

最新文章

  1. ubuntu操作系统下载
  2. 在域模式中控制客户端运行和禁止软件
  3. excel单元格调用mysql数据_Excel 使用单元格的值 查询MySQL数据库并返回数据给相应的单元格...
  4. Spring cloud config 分布式配置中心(一) 服务端
  5. iOS NSOperation 非并发执行
  6. how is SAP ui5 formatter resolved
  7. GDB动态库搜索路径
  8. Python的Wiki
  9. 智能家居系统通信方式,主要有以下四种
  10. R语言︱噪声数据处理、数据分组——分箱法(离散化、等级化)
  11. 信号(signal)
  12. Cmake之基本语法
  13. python 库文件版本收集及安装
  14. 大数据处理方面的 7 个开源搜索引擎
  15. 从 Storm 到 Flink,汽车之家基于 Flink 的实时 SQL 平台设计思路与实践
  16. discuz模板机制解析
  17. python广义矩估计_怎么用软件做广义矩估计GMM的参数估计?
  18. loj6198谢特 后缀数组+并查集+Trie
  19. TensorFlow Objection Detection API使用教程
  20. Mapbox相机动画整理(1)示例解析

热门文章

  1. HSF服务注册失败,项目启动后,EDAS列表无法发现注册的服务
  2. Java-用IDEA创建Java项目
  3. 网络发现协议服务器,关于 DHCP 服务器和网络发现
  4. C语言 __VA_ARGS__ - C语言零基础入门教程
  5. 如何使用matlab的siso,利用Matlab内建程式SISODesignTool完成系统分析(Matlab61)开启.PDF...
  6. Python学习笔记(5):Python如何忽略warning的输出
  7. linux+有趣的指令,6个有趣的Linux命令(乐趣终端) - 第二部分
  8. 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载
  9. android listview countdowntimer,Android-ListView中的CountDownTimer随机闪烁
  10. 学校为什么要单位接收函_学校、小区运动场为什么要选择塑胶跑道