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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

记录几个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;//绘制后更改线宽

Jetbrains全家桶1年46,售后保障稳定

在这里插入图片描述

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)=xex2y2

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • git删除远程分支

    1.git删除远程分支gitpushorigin–delete[branch_name]2.删除本地分支区别gitbranch-d会在删除前检查merge状态(其与上游分支或者与head)。gitbranch-D是gitbranch–delete–force的简写,它会直接删除。共同点都是删除本地分支的方法(与删除远程分支命令相独立,要想本地和远程都删除,必须得运行两个命令)。3.git查看分支:查看本地分支gitbranch查看远程分支

    2022年4月3日
    94
  • Fiddler安装教程(图文版)「建议收藏」

    Fiddler安装教程(图文版)「建议收藏」本章教程,主要介绍如何在windows10系统上安装Fiddler。一、Fiddler软件简介二、软件官网地址三、图文下载步骤四、软件安装步骤五、结语一、Fiddler软件简介Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。Fiddler要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好…

    2025年8月22日
    4
  • java json对象和json字符串互转的方法_将json字符串转换成对象

    java json对象和json字符串互转的方法_将json字符串转换成对象包名:importnet.sf.json.JSONObject;1.maven地址<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</…

    2022年9月22日
    3
  • laravel通过创建自定义artisan make命令来新建类文件详解「建议收藏」

    laravel通过创建自定义artisan make命令来新建类文件详解「建议收藏」laravel通过创建自定义artisan make命令来新建类文件详解

    2022年4月24日
    49
  • lombok插件失效原因_lombok插件下载

    lombok插件失效原因_lombok插件下载昨晚项目出了个小问题,lombok插件失效了。由于使用了lombok的@Data注解生成实体类的getter和setter,项目运行时所有的使用getter和setter方法的地方全都报错。看了网上的解决方案,一个一个试,发现没有一个能解决我的问题最后,我发现在pom.xml文件里面的<build></build>里面缺少了lombok的部分,把他加上即可<build><plugins><plugin

    2025年8月30日
    9
  • VC6的SDK:Microsoft Platform SDK February 2003下载地址「建议收藏」

    VC6的SDK:Microsoft Platform SDK February 2003下载地址「建议收藏」据说是最后一个支持VC6R的SDK,我在项目中出现如下错误:errorLNK2001:unresolvedexternalsymbol_CLSID_ConnectionManager明明包含了这些头文件,也链接了LIB。。。#include//启用、禁用网卡#pragmacomment(lib,”ole32.lib”)VC6使用WMI

    2022年6月4日
    133

发表回复

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

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