Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >matlab三维图形的绘制[通俗易懂]

matlab三维图形的绘制[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-11-07 07:31:33
发布于 2022-11-07 07:31:33
2.8K00
代码可运行
举报
运行总次数:0
代码可运行

采用matlab进行三维图绘制

1.mesh函数:网格图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mesh(x,y,z)

x是n维向量,y是m维向量,z是m*n维向量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x=1:0.1:10;
y=1:0.1:10;
[x, y] = meshgrid(x,y);
z=x.^2-y.^2;
mesh(x,y,z)

除此之外还有 meshc函数:除了mesh函数图形外,还在xy平面上绘制曲面的等高线。 meshz函数:除了mesh函数图形外,还在xy平面上绘制曲面的底座。

2.surf函数:曲面

绘制出在某一区间内完整的曲面图 surf函数和mesh函数的的调用格式基本相同 两者的区别: mesh绘出彩色的线,surf绘出彩色的面,下面进行对比

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[x,y] = meshgrid(-5:0.5:5); % 快速生成网格所需的数据
tem = sqrt(x.^2+y.^2)+1e-12; 
z = sin(tem)./tem; % 如果不对tem处理,那么z的最中间的一个值 0/0 = NaN
subplot(1,2,1)
mesh(x,y,z)
xlabel('x轴'); ylabel('y轴'); zlabel('z轴'); % 加上坐标轴的标签
axis vis3d % 冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
title('mesh(x,y,z)')
subplot(1,2,2)
surf(x,y,z) % (X(j), Y(i), Z(i,j))是线框网格线的交点
xlabel('x轴'); ylabel('y轴'); zlabel('z轴'); % 加上坐标轴的标签
axis vis3d % 冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
title('surf(x,y,z)')

除此之外还有类似的函数: surfc函数:除了surf函数图形外,还在xy平面上绘制曲面的等高线。 surfl函数:加上了灯光效果,看起来自然点。

设置色彩模式 shading 是用来处理色彩效果的,分以下三种: shading faceted是默认的模式 shading flat 在faceted的基础上去掉 图上的网格线 shading interp 在flat的基础上进行色彩的插值处理,使色彩平滑过渡

3.contour函数: 绘制等高线图

contour(x,y,z,n) 在x-y平面绘制等高线图,n是一个标量,那么Matlab会将等高线的层数设置为n,且会自动选择层所在的高度。 如果不加n,会自动设置层数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[x,y] = meshgrid(-3:0.1:3); 
% 一个语句太长时,可以加上三个点然后在下一行继续写
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); % matlab中内置的peaks函数,常常作为演示使用
% edit peaks
contour(x,y,z)
xlabel('x轴'); ylabel('y轴'); % 加上坐标轴的标签

contourf函数:和contour函数类似,只不过画出来的等高线图有颜色填充,然后再后面加上showText和on参数使得数值显示。 contourf(x,y,z,'ShowText','on')

contour3函数:3维等高线图,等高线不再投影到x-y平面 contour3(x,y,z,levels,‘ShowText’,‘on’) xlabel(‘x轴’); ylabel(‘y轴’); zlabel(‘z轴’); % 加上坐标轴的标签

4 .绘制符号函数图

plot3函数 (类似于plot函数,实际上可以认为画的是三维空间下的折线图)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
t = linspace(0,4*pi,100); % 符号是t,t从0变动到4pi,等分为100个点
x = sin(t)+1; % 利用t计算x的值
y = cos(t); % 利用t计算y的值
z = t; % 利用t计算z的值
plot3(x,y,z) % 绘制三维空间下的折线图

定义符号表达式,利用fplot3(x,y,z)可以得到结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms t % 符号是t
x = sin(t)+1;
y = cos(t); 
z = t;
fplot3(x,y,z) % 默认t的变化范围为[-5 5]

fmesh() 三维曲面网格图,效果类似mesh函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms x y 
z=x^2+y^2;
fmesh(z) % 默认x的变化范围和y的变化范围都是[-5 5]

fsurf 三维曲面图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms x y 
z=x^2+y^2;
fsurf(z) % 默认x的变化范围和y的变化范围都是[-5 5]

效果和上面的相比就是多了颜色。 fcountour()绘制登高线图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms x y 
z=x^2+y^2;
fcontour(z) % 默认x的变化范围和y的变化范围都是[-5 5]

5.隐函数绘图

fimplicit(f,interval) 指定绘图区间[]依次是x,y,z的上下范围

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
% fimplicit3(f) 在默认区间 [-5 5]上绘制 f(x,y,z) = 0 定义的三维隐函数。
f = @(x,y,z) x.^2 + y.^2 - z.^2; % 函数句柄(在拟合那一节里面介绍过),这里要注意,要用点运算符
fimplicit3(f)
xlabel('x轴'); ylabel('y轴'); zlabel('z轴'); % 加上坐标轴的标签

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183273.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
利用matlab画三维图像_使用变身卡进行擂台切磋
除了mesh函数meshc函数还能在xy平面上绘制曲面的等高线,meshz函数还能在xy平面上绘制曲面的底座
全栈程序员站长
2022/11/07
1.3K0
利用matlab画三维图像_使用变身卡进行擂台切磋
MATLAB绘制三维图形z=5_plot3用法
mesh(X,Y,Z)的用法,其中X是n维向量,Y是m维向量,Z是m*n维的矩阵:
全栈程序员站长
2022/09/27
2.1K0
Matlab画图-非常具体,非常全面
强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本參数就能得到所需图形,这类函数称为高层画图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层画图操作。这类操作将图形的每一个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每一个对象分配一个句柄,能够通过句柄对该图形元素进行操作,而不影响其它部分。
全栈程序员站长
2021/11/18
2.1K0
matlab的三维绘图和四维绘图「建议收藏」
光照是利用方向官员照亮物体的技术,这项技术能使表面微妙的差异更容易看到,光照也能用来对三维的图像增加现实感。
全栈程序员站长
2022/11/10
6.5K0
matlab的三维绘图和四维绘图「建议收藏」
Matlab画三维图_读书笔记图画
plot3 基本的三维曲线图绘制 plot3(x,y,z),x,y,z均为相同长度的向量,会得到三个向量相同下标构成的的三维坐标(xi,yi,zi)(i=1~n)连的曲线
全栈程序员站长
2022/11/10
1.1K0
Matlab画三维图_读书笔记图画
MATLAB绘制三维地图「建议收藏」
1、meshgrid:生成格点矩阵,类似于给定坐标空间 [x,y]=meshgrid(1:10); 2、interp插值法 插值法又称“内插法”,是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法。
全栈程序员站长
2022/11/10
3K0
MATLAB绘制三维地图「建议收藏」
Matlab绘图(一二三维)
强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
全栈程序员站长
2022/07/15
2.3K0
【中秋节快乐】Matplotlib:3d绘图合集
https://blog.csdn.net/m0_63834988/category_12441299.html
Qomolangma
2024/07/30
1680
【中秋节快乐】Matplotlib:3d绘图合集
1.基础知识(3) --Matlab绘制特殊的图形
自定义沿坐标轴的刻度值和标签有助于突出显示数据的特定方面。以下示例说明一些常见的自定义,例如修改刻度值的放置位置、更改刻度标签的文本和格式,以及旋转刻度标签。
用户9925864
2022/07/27
3.6K0
1.基础知识(3) --Matlab绘制特殊的图形
MATLAB笔记—绘制三维图像「建议收藏」
需要注意的是当你要绘制由线段连接的一组坐标,那么就将 x、y、z 指定为相同长度的向量。要在同一组坐标轴上绘制多组坐标,那么就将 x、y、z 中的至少一个指定为矩阵,其他指定为向量。
全栈程序员站长
2022/11/17
4.1K0
MATLAB笔记—绘制三维图像「建议收藏」
Matlab系列之三维图形
在Matlab中,三维图形有:三维曲线、三维网格以及三维曲面,分别对应函数:plot3、mesh和surf,本篇将介绍些常规使用以及一些三维图形的处理。
狂人V
2021/06/29
1.7K0
使用 Matplotlib 在 Python 中进行三维绘图
3D 图是可视化具有三个维度的数据(例如具有两个因变量和一个自变量的数据)的非常重要的工具。通过在 3D 图中绘制数据,我们可以更深入地了解具有三个变量的数据。我们可以使用各种 matplotlib 库函数来绘制 3D 绘图。
用户1418987
2023/10/26
3.8K0
使用 Matplotlib 在 Python 中进行三维绘图
【深度学习】 Python 和 NumPy 系列教程(十九):Matplotlib详解:2、3d绘图类型(5)3D等高线图(3D Contour Plot)
Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:
Qomolangma
2024/07/29
2040
【深度学习】 Python 和 NumPy 系列教程(十九):Matplotlib详解:2、3d绘图类型(5)3D等高线图(3D Contour Plot)
Python三维绘图--Matplotl
创建Axes3D主要有两种方式,一种是利用关键字projection='3d'l来实现,另一种则是通过从mpl_toolkits.mplot3d导入对象Axes3D来实现,目的都是生成具有三维格式的对象Axes3D.
py3study
2020/01/08
2.7K0
matlab三维图怎么改变颜色_matlab画复杂函数图像
当我们学习surface命令时,已经看到了三维作图的一些端倪。在matlab中我么可以调用mesh(x,y,z)函数来产生三维图像。
全栈程序员站长
2022/09/27
3.3K0
【MATLAB 从零到进阶】day7制作三维图形
>> plot3(20*sin(t), 20*cos(t), t, 'r', 'linewidth', 2);
统计学家
2019/04/10
9380
【MATLAB 从零到进阶】day7制作三维图形
一起来学matlab-matlab学习笔记8 基本绘图命令_6 三维绘图
本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一些负面消息对国内各个高校和业界影响很大。但是我们作为技术人员,更是要奋发努力,拼搏上进,学好技术,才能师夷长技以制夷,为中华之崛起而读书!
演化计算与人工智能
2020/08/14
1.4K0
一起来学matlab-matlab学习笔记8 基本绘图命令_6 三维绘图
MATLAB三维绘图[通俗易懂]
x=0:pi/50:10*pi; sin=sin(x); cos=cos(x); plot3(sin,cos,x); title(‘helix’),text(0,0,0,’origin’); xlabel(‘sin(x)’),ylabel(‘cos(x)’),zlabel(‘x’)
全栈程序员站长
2022/11/03
1.7K0
matlab画三维函数图像代码_excel绘制三维图形
例:用mesh,surf,surfl,surfc函数绘制二元正态分布的密度函数图。
全栈程序员站长
2022/09/27
9250
Matlab绘图方法整理(超完整版)
二维图像是我们在学习过程中经常会接触到的图像,比如在做数学题目时随手画出的一个正弦曲线,这个图像往往是我们根据它的函数做出来的,事实确是这样,在我们学习过程中画出来的每一个图像几乎都是函数,反过来说,每一个函数都对应着它自己的图像,我们能画出来的二维图像往往是一个一元函数即二元方程,在Matlab中做二维图像也是这样,我们根据一个函数来画出它的图像,不过要注意的一点是,在Matlab画图的过程中,它并不认识你给出的那个函数,它要做的仅仅是把你给出的函数上的点连成线而已。
全栈程序员站长
2022/09/07
2.5K0
Matlab绘图方法整理(超完整版)
相关推荐
利用matlab画三维图像_使用变身卡进行擂台切磋
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验