MATLAB笔记—绘制三维图像「建议收藏」

MATLAB笔记—绘制三维图像「建议收藏」记录几个MATLAB中绘制三维图像的常用函数1.plot3(x,y,z)需要注意的是当你要绘制由线段连接的一组坐标,那么就将x、y、z指定为相同长度的向量。要在同一组坐标轴上绘制多组坐标,那么就将x、y、z中的至少一个指定为矩阵,其他指定为向量。现在通过几个实例看一下绘制效果t=linspace(-10,10,1000);xt=exp(-t./10).*sin(5*t);yt=exp(-t./10).*cos(5*t);p=plot3(xt,yt,t);p.Line

记录几个MATLAB中绘制三维图像的常用函数

1.plot3(x,y,z) /plot3(x,y,z,LineSpec) 用于绘制三维空间中的坐标

需要注意的是当你要绘制由线段连接的一组坐标,那么就将 x、y、z 指定为相同长度的向量。要在同一组坐标轴上绘制多组坐标,那么就将 x、y、z 中的至少一个指定为矩阵,其他指定为向量。

LineSpec可以是指定的线型、标记或颜色。如“-”表示实线,“–”表示虚线,“r”图像变为红色,“y”图像变为黄色。
现在通过几个实例看一下绘制效果

t = linspace(-10,10,1000);
xt = exp(-t./10).*sin(5*t);
yt = exp(-t./10).*cos(5*t);
p = plot3(xt,yt,t);p.LineWidth=4;//绘制后更改线宽

在这里插入图片描述

t = 0:pi/500:pi;
//创建包含三行 x 坐标的矩阵 X。创建包含三行 y 坐标的矩阵 Y 
X(1,:) = sin(t).*cos(10*t);
X(2,:) = sin(t).*cos(12*t);
X(3,:) = sin(t).*cos(20*t);

Y(1,:) = sin(t).*sin(10*t);
Y(2,:) = sin(t).*sin(12*t);
Y(3,:) = sin(t).*sin(20*t);
//创建矩阵 Z,其中包含所有三组坐标的 z 坐标。
Z = cos(t);
plot3(X,Y,Z)//绘制多条曲线
legend('1','2','3')

在这里插入图片描述

2.stem3(x,y,z) 将 Z 中的各项绘制为针状图,这些针状图从 xy 平面开始延伸,其中 X 和 Y 指定 xy 平面中的针状图位置。X、Y 和 Z 输入必须是大小相同的向量或矩阵。

该函数用于绘制三维离散数据图形

figure;
[X,Y] = meshgrid(0:.1:1);//meshgrid函数用于生成网格矩阵
Z = exp(X+Y);
stem3(X,Y,Z);

在这里插入图片描述

figure
X = linspace(-pi/2,pi/2,40);
Z = [sin(X); cos(X)];
stem3(Z)

在这里插入图片描述

3.mesh(x,y,z) 创建一个网格图,该网格图为三维曲面,有实色边颜色,无面颜色。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。边颜色因 Z 指定的高度而异。

用于生成网格曲面图

[X,Y] = meshgrid(-8:.5:8);//生成网格矩阵
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
mesh(X,Y,Z,C)
colorbar//产生色阶的颜色栏

在这里插入图片描述
mesh函数还有其他格式,如mesh(___,C) 进一步指定边的颜色。进一步指定边的颜色;mesh(___,Name,Value) 使用一个或多个名称-值对组参数指定曲面属性。例如,‘FaceAlpha’,0.5 创建半透明网格图。

4.surf(x,y,z) 创建一个三维曲面图,它是一个具有实色边和实色面的三维曲面。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。曲面的颜色根据 Z 指定的高度而变化。

常用的生成曲面图的函数

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
surf(X,Y,Z,C)
colorbar

在这里插入图片描述
此外,surf(X,Y,Z,C) 还指定曲面的颜色。surf(___,Name,Value) 使用一个或多个名称-值对组参数指定曲面属性。例如,‘FaceAlpha’,0.5 创建半透明曲面。

5.contour(x,y,z)

常用的生成等高线图的函数

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
contour(X,Y,Z)
colorbar

在这里插入图片描述

若是想生成带标签的等高线,可用函数contour(X,Y,Z,‘ShowText’,‘on’)实现。

6.meshgrid(x,y) /meshgrid(x,y,z)

用于生成二维或三维的网格
[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。

实例1:
使用向量 x 定义的 x 坐标和向量 y 定义的 y 坐标创建二维网格坐标,并在二维网格上计算表达式 x 2 + y 2 x^2+y^2 x2+y2

x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
X.^2 + Y.^2

在这里插入图片描述
实例2:
使用均匀分布的 x 坐标和 y 坐标在区间 [-2,2] 内创建二维网格,并在二维网格上计算并绘制函数 f ( x , y ) = x e − x 2 − y 2 f(x,y) =xe^{-x^2-y^2} f(x,y)=xe−x2−y2

x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);
F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)

在这里插入图片描述

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm安装最新超详细版本[通俗易懂]

    Pycharm安装最新超详细版本[通俗易懂]pycharm安装最新最详细版本,想拥有一个完美的python的IDE?看这就够了!

    2022年8月25日
  • Tasker使用企业微信api推送消息到普通微信「建议收藏」

    Tasker使用企业微信api推送消息到普通微信「建议收藏」注册https://work.weixin.qq.com/wework_admin/register_wx注册成功进入管理后台—>我的企业—>微工作台—>邀请关注*使用普通微信关注后才能接收消息应用与小程序—>创建应用*可见范围可以选整个企业企业ID我的企业—>…

    2022年5月23日
  • 等价类划分法-案例剖析-设计测试用例「建议收藏」

    等价类划分法-案例剖析-设计测试用例「建议收藏」目录等价类划分法概念有效等价类和无效等价类等价类设计测试用例步骤案例1案例2案例3等价类划分法概念等价类划分法是把所有可能的输入数据,即程序的输入数据集合划分成若干个子集即等价类,然后从每个等价类中选取少量具有代表性的数据作为测试用例。有效等价类和无效等价类有效等价类:只完全满足产品规则说明的输入数据,即有效的、有意义的输入数据的集合。利用有效等价类可以检验程序是否满足规则说明所规定的功能性要求。无效等价类:不满足程序输入要求或者无效的…

    2022年10月10日
  • c# mysql executenonquery_c#数据四种执行方法(ExecuteNonQuery)

    c# mysql executenonquery_c#数据四种执行方法(ExecuteNonQuery)1.使用ExecuteReader()操作数据库2.使用ExecuteNonQuery()操作数据库3.使用ExecuteScalar()操作数据库4.使用DataSet数据集插入记录,更新数据一、使用ExecuteReader()操作数据库,执行查询操作的非常好的方法。ExecuteReader比DataSet而言,DataReader具有较快的访问能力,并且能够使用较少的服务器资源。DataR…

    2022年9月11日
  • MBUS协议_协议解析

    MBUS协议_协议解析来自于我的163博客,一篇好好的技术文章,在163上居然提示不能显示,我2014年6月25日就翻译出来了,当时很多其他博客都是直接拷贝我的文章都能在网上发布。看了许多关于MBus协议的资料,感觉说的不具体、不完整、也不系统,本人准备结合一个具体的产品实现,从理论和实现上对MBus协议做一个详细的论述,如有不当之处,欢迎讨论。1介绍MBus(MeterB…

    2022年10月16日
  • Oracle listagg去重distinct三种方法总结

    Oracle listagg去重distinct三种方法总结一、简介最近在工作中,在写oracle统计查询的时候,遇到listagg聚合函数分组聚合之后出现很多重复数据的问题,于是研究了一下listagg去重的几种方法,以下通过实例讲解三种实现listagg去重的方法。二、方法首先还原listagg聚合之后出现重复数据的现象,打开plsql,执行如下sql:selectt.department_namedepname,…

    2022年9月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号