1、平面网格数据的生成
(1)利用矩阵运算生成

(2)利用meshgrid函数生成
[X,Y]=meshgrid(x, y);

其中,参数x、y为向量,存储网格点坐标的X、Y为矩阵。

%方法1
x = 2:6;   %五个元素的行向量
y = (3:8)'; %六个元素的列向量
X = ones(size(y))*x;  %矩阵X的每一行都是向量x,行数等于向量y的元素的个数
Y = y*ones(size(x));   %矩阵Y的每一行都是向量y,列数等于向量的元素的个数%结果
>> X = ones(size(y))*x
X =2     3     4     5     62     3     4     5     62     3     4     5     62     3     4     5     62     3     4     5     62     3     4     5     6>> Y = y*ones(size(x))
Y =3     3     3     3     34     4     4     4     45     5     5     5     56     6     6     6     67     7     7     7     78     8     8     8     8%方法2
x = 2:6;
y = (3:8)';
[X,Y] = meshgrid(x,y);%结果
X =2     3     4     5     62     3     4     5     62     3     4     5     62     3     4     5     62     3     4     5     62     3     4     5     6Y =3     3     3     3     34     4     4     4     45     5     5     5     56     6     6     6     67     7     7     7     78     8     8     8     8

例1:绘制空间曲线

x = 2:6;
y = (3:8)';
[X,Y] = meshgrid(x,y);
Z = randn(size(X));  %randn函数生成与X同型的矩阵Z,Z的大小也是6行5列
plot3(X,Y,Z)   %图形窗口出现5条折线
xlabel('X')
ylabel('Y')
zlabel('Z')
grid on
legend()


2、绘制三维曲面的函数
mesh(x, y,z,c)
mesh函数用于绘制三维网格图

surf(x, y,z,c)

surf函数用于绘制三维曲面图,各线条之间的补面用颜色填充

一般情况下xyz是同型矩阵,其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。

t = -2:0.2:2;
[X,Y] = meshgrid(t);
Z = X.*exp(-X.^2-Y.^2);subplot(2,2,1)
mesh(X,Y,Z);subplot(2,2,2)
surf(X,Y,Z);subplot(2,1,2)
plot3(X,Y,Z);
grid on


mesh函数和surf函数的其他调用格式:
mesh(z, c)
surf(z, c)

当x、y省略时,z矩阵的第2维下标当作x轴坐标,z矩阵的第1维下标当作y轴坐标。

t = 1:10;
z = [0.5*t;2*t;3*t];
mesh(z)
title('mesh(z)','fontsize',16)


带等高线的三维网格曲面函数meshc
在xy平面上绘制曲面,在z轴方向的等高线

带底座的三维网格曲面函数meshz
在xy平面止绘制曲面的底座

具有等高线的曲面函数surfc
具有光照效果的曲面函数surfl

例3 :用4种方式绘制函数z=(x- 1 ) ^2+(y-2) ^2-1的曲面图,其中x ∈ [0,2],y∈ [1,3]。

[X,Y] = meshgrid(0:0.1:2,1:0.1:3);   %生成网格矩阵x,y
Z = (X-1).^2+(Y-2).^2-1;             %生成高度矩阵zsubplot(2,2,1)
meshc(X,Y,Z)
title('meshc(X,Y,Z)','color','r')subplot(2,2,2)
meshz(X,Y,Z)
title('meshz(X,Y,Z)','color','r')subplot(2,2,3)
surfc(X,Y,Z)
title('surfc(X,Y,Z)','color','r')subplot(2,2,4)
surfl(X,Y,Z)
title('surfl(X,Y,Z)','color','r')


3、标准三维曲面
( 1 ) sphere函数:绘制三维球面
[x, y,z]=sphere(n)
sphere函数将新产生3个n加阶的方阵,采用这3个矩阵可以绘制出圆心位于原点,半径为1的单位球体

( 2 ) cylinder函数:绘制三维柱面
[x, y, z]=cylinder(R, n)
参数R是个向量,存放柱面各个等间隔高度上的半径,n表示在圆桂圆周上有n个间隔点

例4:用cylinder函数分别绘制柱面、花瓶和圆锥面。

subplot(1,3,1)
[x,y,z] = cylinder;   %不带参数,默认生成2行21列的网格坐标矩阵
surf(x,y,z)               %绘制柱面
title('柱面','color','r','fontsize',20)subplot(1,3,2)
t = linspace(0,2*pi,40);
[x,y,z] = cylinder(2+cos(t),30);    %向量有40个元素,生成40行31列的网格坐标矩阵
surf(x,y,z)                %绘制花瓶
title('花瓶','color','r','fontsize',20)subplot(1,3,3)
[x,y,z] = cylinder(0:0.2:2,30);
surf(x,y,z)                %绘制圆锥面
title('圆锥面','color','r','fontsize',20)


例5 :用cylinder数绘制两个相互垂直且直径相等的圆柱面的相交图形。

[x,y,z] = cylinder(1,60);
z = [-1*z(2,:);z(2,:)];
surf(x,y,z)
hold on
surf(y,z,x)
axis equal

4.5 matlab三维曲面(mesh、fmesh、meshc、meshz、surf、fsurf、surfc、surfl)相关推荐

  1. MATLAB三维曲面绘图你不得不知道的...

    三维曲面图,可以用surf(有阴影)或mesh(没阴影)命令,如: xx=linspace(-1,1,50);%以上两句的意思是 yy=linspace(-2,2,100);%创建一个xy坐标平面前建 ...

  2. (MATLAB)三维曲面(mesh/surf)

    本实验取材于中南大学<MATLAB与科学计算> 今天学习了三维曲面绘制,三维曲面绘制需要用相应的函数是,但是步骤总体包括: 平面网格数据的生成 绘制三维曲面的mesh函数和surf函数 f ...

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

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

  4. matlab 三维图程序,MATLAB 三维图形的绘制

    三维图形的绘制 最常用的三维绘图是绘制三维曲线图.三维网格图.三维曲面图,相应的matlab命令分别为plot3.mesh.surf. plot3 plot3(X1,Y1,Z1,lineSpec)   ...

  5. Matlab三维绘图------三维曲线图

    在matlab中绘制的三维图主要有三种: 三维曲线图.立体网状图.和三维曲面图 其基本命令为: plot3 %三维曲线图 mesh %立体网状图 surf %三维曲面图 三维曲线图基本绘图函数 函数命 ...

  6. matlab 求曲面体积,matlab求两曲面之间的体积

    MATLAB求曲面相交所成空间曲线的图形 放在你程序后也可,单独运行也行:t=-0.1:0.1:2*pi;x=2*cos(t);%交线参数方程z=2*sin(t);y1=sqrt(5)*ones(si ...

  7. matlab三维可视化,MATLAB中三维数据可视化及应用

    Value Engineering -----------------------作者简介:张晓利(1976-),女,陕西临潼人,硕士研究生,讲师,研究方向为 计算机应用. 0引言 MATLAB 在数 ...

  8. MATLAB函数mesh与surf等绘制三维曲面入门

    一.引言 三维曲面在实际应用中被广泛使用,能够更好的展示三维空间中曲面,以实现三维数据的可视化. Matlab软件中可以使用mesh.fmesh.surf和fsurf等函数来实现三维曲面的绘图.其中m ...

  9. Matlab之绘制三维曲面图

    最近在学matlab三维绘图,总结了自己学的一些点,就当是记笔记啦! 情况一: z和x,y有关系,z=f(x,y) 1.surf方法 基本语法 surf(X,Y,Z)         这里的Z可以用X ...

最新文章

  1. 详解PyTorch编译并调用自定义CUDA算子的三种方式
  2. msvcr100.dll丢失原因及解决方法
  3. 皮一皮:从地理位置分析当年的那件事...
  4. SQL中常用的日期计算
  5. 移动应用如何提升登录转化率
  6. python numpy np.lexsort()(使用键序列执行间接稳定排序)(具体没太搞懂区别?)
  7. vs2013 error MSB8031 MBCSMFC问题的解决
  8. 我的Go语言学习之旅六:做一个WIN的简单弹窗
  9. python编程小学生学难吗_为什么小学生都要学Python
  10. java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)
  11. Visual Studio 2019 v16.4 Preview 2 发布
  12. 机器学习算法中的偏差-方差权衡(Bias-Variance Tradeoff)
  13. TensorFlow 学习------第二天
  14. okhttp3 请求html页面,OkHttp3简单使用教程(一):请求和响应
  15. 宠物领养平台的分析与实现
  16. 使用ExtendSim指导全球大流行爆发期间的关键决策
  17. 2019 年第 34 周 DApp 影响力排行榜 | TokenInsight
  18. BZOJ3894:文理分科
  19. 键盘移动小div(js原生)
  20. Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册

热门文章

  1. 【备忘】Oracle10g 创建、删除表空间、创建、授权用户
  2. ldd,locate,vimdiff
  3. 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
  4. 技术团队的情绪与效率
  5. OTA固件升级对于物联网设备的重要性
  6. 30分钟带你熟练性能优化的那点儿事儿(案例说明)
  7. sublime text 使用笔记
  8. 【BZOJ3262】 陌上花开
  9. poj2955Brackets(区间DP)
  10. java通过使用ffmpeg获取视频的码率