Matlab绘图(第五节-三维曲面)

这篇具有很好参考价值的文章主要介绍了Matlab绘图(第五节-三维曲面)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

具体讲述了三维曲面绘图方法等。

平面网格数据的生成

Matlab绘图(第五节-三维曲面)

此时所有点坐标可以表示为:

x=[2 2 2 2 2 2;3 3 3 3 3 3;4 4 4 4 4 4;5 5 5 5 5 5;6 6 6 6 6 6]

y=[3 4 5 6 7 8;3 4 5 6 7 8;3 4 5 6 7 8;3 4 5 6 7 8;3 4 5 6 7 8]

矩阵x,y就是该平面内的网格坐标矩阵。

(1)利用矩阵运算生成

x=2:6;
y=(3:m,8)';
X=ones(size(y))*x;
Y=ones(size(x))*y;%所生成的网格坐标矩阵与上述一致。

(2)利用meshgrid函数生成

[X,Y]=meshgrid(x,y);

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

x=2:6;
y=(3:8)';
[X,Y]=meshgrid(x,y);

当x与y相同时直接简化为[X,Y]=meshgrid(x)

例1:绘制空间曲线。
x=2:6;
y=(3:8)';
[X,Y]=meshgrid(x,y);
Z=randn(size(X));
plot3(X,Y,Z);
grid on;
Matlab绘图(第五节-三维曲面)

绘制三维曲面图的函数

mesh(x,y,z,c)

surf(x,y,z,c)

其中,x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。c省略时,默认c等于z。

例2:绘制三维曲面图Matlab绘图(第五节-三维曲面)

t=-2:0.2:2;
[X,Y]=meshgrid(t);
Z=X.*exp(-X.^2-Y.^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
Matlab绘图(第五节-三维曲面)

拓展:带等高线的三维网格曲面函数meshc

带底座的三维网格曲面函数meshz

具有等高线的曲面函数surfc

具有光照效果的曲面函数surfl

例3:用四种方式绘制函数Matlab绘图(第五节-三维曲面)的曲面图,其中x的范围为0~2,y的范围为1~3。
[x,y]=meshgrid(0:0.1:2,1:0.1:3);
z=(x-1).^2+(y-2).^2-1;
subplot(2,2,1);
meshc(x,y,z)
subplot(2,2,2);
meshz(x,y,z)
subplot(2,2,3);
surfc(x,y,z)
subplot(2,2,4);
surfl(x,y,z)
Matlab绘图(第五节-三维曲面)

标准三维曲面

(1)sphere函数

[x,y,z]=sphere(n)

n代表球面的圆滑程度(默认为20),若不带输出参数,则直接绘制球面。

(2)cylinder函数

[x,y,z]=cylinder(R,n)

R代表柱面半径,n表示有多少间隔点(默认为20个)

例4:用cylinder函数分别绘制柱面,花瓶面和圆锥面
subplot (1,3,1);
[x,y,z]=cylinder;
surf(x,y,z);
subplot(1,3,2);
t=linspace(0,2*pi,40);
[x,y,z]=cylinder(2+cos(t),30);
surf(x,y,z);
subplot(1,3,3);
[x,y,z]=cylinder(0:0.2:2,30);
surf(x,y,z);
Matlab绘图(第五节-三维曲面)
例5:用cylinder函数绘制两个相互垂直且直径相等的圆柱面的相交图形。
clear;clc
[x,y,z]=cylinder(1,60)
z=[-1*z(2,:);z(2,:)]
surf(x,y,z)
hold on
surf(y,z,x)
axis equal
Matlab绘图(第五节-三维曲面)

fsurf函数和fmesh函数

fsurf(funx, funy, funz, uvlims)

fmesh(funx, funy, funz, uvlims)

其中,funx、funy、funz代表定义曲面x、y、z坐标的函数,通常采用函数句柄的形式。uvlims为funx、funy和funz的自变量的取值范围,用4元向量[umin,umax, vmin,vmax]描述。默认为[-5,5,-5,5]。

例5:绘制螺旋曲面

Matlab绘图(第五节-三维曲面)

Matlab绘图(第五节-三维曲面)

Matlab绘图(第五节-三维曲面)文章来源地址https://www.toymoban.com/news/detail-413089.html

clear;clc
subplot(1,2,1)
fsurf(@(u,v) u.*sin(v),@(u,v) -u.*cos(v),@(u,v) v,[-5,5,-5,2])
subplot(1,2,2)
fmesh(@(u,v) u.*sin(v),@(u,v) -u.*cos(v),@(u,v) v,[-5,5,-5,2])
Matlab绘图(第五节-三维曲面)

到了这里,关于Matlab绘图(第五节-三维曲面)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB二维与三维绘图实验

    本文MATLAB源码,下载后直接打开运行即可[点击跳转下载]-附实验报告 https://download.csdn.net/download/Coin_Collecter/88740747 掌握图形对象属性的基本操作。 掌握利用图形对象进行绘图操作的方法。 利用图形对象绘制曲线,要求先利用默认属性绘制曲线,然后通过图形句柄操作将曲线

    2024年01月17日
    浏览(47)
  • matlab绘图(三)绘制三维图像

    一、绘制三维曲线  二、绘制三维曲面 1.meshgrid函数  2.mesh和surf函数 1.最基本的绘制三维曲线的函数 —plot3 plot3(x1,y1,z1, 选项 1,x2,y2,z2, 选项 2,…, xn,yn,zn , 选项 n) 其中,每一组 x , y , z 组成一组曲线的坐标参数,选项的定义和 plot 函数相同。当 x 、 y 、 z 是同维向量时,则

    2024年02月01日
    浏览(93)
  • Matlab进阶绘图第16期—三维填充折线图

    三维填充折线图是在三维折线图的基础上,对其与XOY平面之间的部分进行颜色填充,从而 能够更好地刻画细节变化 。 由于Matlab中未收录三维填充折线图的绘制函数,因此需要大家自行设法解决 。 本文使用自制的FilledPlot3小工具进行三维填充折线图的绘制,先来看一下成品效

    2024年02月08日
    浏览(85)
  • MATLAB数学建模:数据图形可视化-三维绘图函数

    在 MATLAB 中, 我们可使用函数 surf 和 surfc 绘制三维曲面图. 调用格式如下: 以矩阵 ZZZ 所指定的参数创建一个渐变的三维曲面. 坐标 $x = 1:n, y = 1:m, $ 其中 [m,n]=size(Z)[m,n] = size(Z)[m,n]=size(Z) 以 ZZZ 确定的曲面高度和颜色, 按照 X,YX,YX,Y 形成的格点矩阵, 创建一个渐变的三维曲面. X,

    2024年02月06日
    浏览(57)
  • HCIA-第五节(0606)

    路由器的转发原理-----当数据包进入路由器,路由器将基于数据包中目标IP地址,查询本地的路由表,如果路由器中存在记录,则将无条件按照记录转发。如果路由器没有记录,则将直接丢弃该数据包。 路由表建立的主要目标是为了实现路由协议和静态路由选择。 chenliqidisp

    2024年02月11日
    浏览(46)
  • HCIP第五节------------------------------------------ospf

    运行距离矢量路由协议的路由器周期性地泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,然后再通告给其他相邻路由器。 对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目

    2024年02月12日
    浏览(48)
  • Verilog 学习第五节(串口发送部分)

    1:串口通信模块设计的目的是用来发送数据的,因此需要有一个数据输入端口 2:串口通信,支持不同的波特率,所以需要一个 波特率设置端口 3:串口通信的本质就是将8位并行数据通过一根信号线,在不同的时刻传输并行数据的不同位,通过多个时刻,最终将8位并行数据

    2023年04月26日
    浏览(39)
  • 【数据结构初阶】第五节.栈的详讲

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、栈的基本认识 二、栈模拟实现:  三、栈的实战演练 3.1 有效的括号 3.2 逆波兰表达式 3.3 栈的压入、弹出序列 总结 上一节内容我们学习了链表的有关内容,今天我们将进行栈的学习

    2023年04月23日
    浏览(46)
  • 【Git 入门教程】第五节、Git远程仓库

    Git是一种分布式版本控制系统,它允许开发者在不同计算机之间协作并共享代码。在本文中,我们将介绍如何以Git为基础进行远程协作。其中包括克隆仓库、推送代码、拉取代码等操作。 要协作开发一个Git项目,需要从服务器上获取该项目的副本。 运行以下命令来克隆Git仓

    2024年02月01日
    浏览(51)
  • 【FreeRTOS】详细讲解FreeRTOS中事件(event)并通过具体示例讲述其用法

      事件,实际上是一种 任务间通信的机制 ,主要 用于实现多任务间的同步 , 其只能是事件类型的通信, 无数据传输 。与信号量不同的是,它 可以实现一对多,多对多的同步 。即可以是任意一个事件发生时唤醒任务进行事件处理;也可以是几个事件都发生后才唤醒任务

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包