当前位置: 首页 > article >正文

20250531MATLAB三维绘图

MATLAB三维绘图

  • 三维曲线:plot3
    • 功能介绍
    • 代码实现过程
    • plot3实现效果
  • 三维曲面
    • 空间曲面作图命令:mesh
      • meshgrid
        • 语法
        • 示例
          • 应用meshgrid
          • 实操训练
      • peaks
        • peaks 的基本用法
        • peaks数学表达式
          • 实操训练
          • 自定义网格大小
          • 使用自定义网格
      • mesh
            • MATLAB代码对齐快捷键Ctrl+i
            • 墨西哥帽
    • 其他作图命令
      • meshc
        • 带等高线的山峰图
        • 带等高线的墨西哥帽子
      • meshz
        • 屏蔽边界面的山峰图
        • 屏蔽边界面的墨西哥帽子
  • 坐标轴控制: axis
    • eps
        • eps的作用
          • eps 的作用和意义

三维曲线:plot3

功能介绍

在这里插入图片描述

代码实现过程

%%plot三维螺旋曲线
t=0:pi/10:10*pi;
x=2*t;
y=sin(t);
z=cos(t);
plot3(x,y,z);

plot3实现效果

在这里插入图片描述

三维曲面

空间曲面作图命令:mesh

首先,先来了解一些基础知识。

meshgrid

meshgrid 是数值计算和图形绘制中使用的函数,用于生成二维或三维网格点的坐标矩阵。
MATLAB 中的 meshgrid
在 MATLAB 中,meshgrid 函数用于生成二维或三维网格点的坐标矩阵。这些矩阵可以用于绘制曲面图、等高线图等。

语法
[X, Y] = meshgrid(x, y);
[X, Y, Z] = meshgrid(x, y, z);

在这里插入图片描述

示例

在这里插入图片描述
首先,对于x,生成一个x = -2:0.2:2; 这条语句就是生成一个行向量。其中,-2 是向量的起始值,0.2 是步长,2 是结束值。MATLAB 会从起始值开始,每次加上步长,直到达到或超过结束值(这里刚好达到结束值)来生成向量的元素。

所以在MATLAB的变量值中可以得到
在这里插入图片描述
y也是同样的一个行向量。

应用meshgrid

meshgrid 函数用于生成二维或三维网格点的坐标矩阵。
在这里插入图片描述

实操训练
x = -2:0.2:2;
y = -2:0.2:2;
[X, Y] = meshgrid(x, y);
Z = X.^2 + Y.^2;
surf(X, Y, Z);

在这里插入图片描述

peaks

在 MATLAB 中,peaks 是一个内置函数,用于生成一个样本函数(通常是一个二维的“山脉”形状的函数),它主要用于演示和测试各种三维图形绘制函数(如 surf、mesh 等)。这个函数可以生成一个包含多个局部极大值和极小值的平滑曲面,非常适合用于展示三维图形的特性和功能。

peaks 的基本用法

peaks 函数有多种调用方式,可以生成不同尺寸的矩阵或直接绘制图形:

  1. peaks: 直接绘制 peaks 函数的三维曲面图。
  2. peaks(n): 生成一个 n×n 的矩阵,表示 peaks 函数在规则网格上的值。
  3. peaks(X,Y): 在指定的网格坐标 X 和 Y 上计算 peaks 函数的值。
  4. [X,Y,Z] = peaks(…): 返回网格坐标矩阵 X、Y 和对应的函数值矩阵 Z。
peaks数学表达式

在这里插入图片描述

实操训练
% 生成一个 20×20 的 peaks 矩阵Z = peaks(20);

在这里插入图片描述

%在指定的网格坐标上计算 peaks 函数的值
[X, Y] = meshgrid(-3:0.2:3, -3:0.2:3);
Z = peaks(X, Y);

因为步长为0.2,从-1到0一共有6个值,因为带上端点
在这里插入图片描述

指定的网格坐标上计算 peaks 函数的值,步长为0.2,所以从-3到3一共有31个值为31*31的矩阵
在这里插入图片描述

返回网格坐标矩阵和函数值矩阵得到49*49

%返回网格坐标矩阵和函数值矩阵
[X, Y, Z] = peaks;

在这里插入图片描述在这里插入图片描述
在这个例子中,peaks 函数默认生成一个 49×49 的网格。这是因为 peaks 函数在没有指定输入参数时,会使用默认的网格参数,即生成一个 49×49 的网格。

自定义网格大小

可以通过指定输入向量来控制网格的大小。例如:

n = 20;  % 指定网格的大小为 20×20
[X, Y, Z] = peaks(n);

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用自定义网格

还可以使用 meshgrid 函数来自定义网格的坐标:

x = linspace(-3, 3, 49);  % 生成包含49个点的向量,范围从-3到3
y = linspace(-3, 3, 49);
[X, Y] = meshgrid(x, y);  % 生成49×49的网格坐标矩阵
Z = peaks(X, Y);          % 计算peaks函数在该网格上的值

mesh

在这里插入图片描述

[X,Y]=meshgrid(-3:1/8:3);
Z=peaks(X,Y);
mesh(X,Y,Z);

mesh作图

mesh作peaks图

MATLAB代码对齐快捷键Ctrl+i
墨西哥帽
x = -8 : 0.5 : 8;
y = -8 : 0.5 : 8;
[X,Y] = meshgrid(x,y);
r = sqrt(X.^2 + Y.^2) + eps;
Z = sin(r) ./ r;
mesh(X,Y,Z)

在这里插入图片描述

墨西哥帽

其他作图命令

在这里插入图片描述

meshc

在这里插入图片描述

带等高线的山峰图
%%
n = 20;  % 指定网格的大小为 20×20
[X, Y, Z] = peaks(n);
[X,Y]=meshgrid(-3:1/8:3);
Z=peaks(X,Y);
meshc(X,Y,Z);

在这里插入图片描述

带等高线的墨西哥帽子
x = -8 : 0.5 : 8;
y = -8 : 0.5 : 8;
[X,Y] = meshgrid(x,y);
r = sqrt(X.^2 + Y.^2) + eps;
Z = sin(r) ./ r;
meshc(X,Y,Z);
title('墨西哥帽')
xlabel('x')
ylabel('y')
zlabel('z')

在这里插入图片描述

meshz

在这里插入图片描述

屏蔽边界面的山峰图

在这里插入图片描述

屏蔽边界面的墨西哥帽子
x = -8 : 0.5 : 8;
y = -8 : 0.5 : 8;
[X,Y] = meshgrid(x,y);
r = sqrt(X.^2 + Y.^2) + eps;
Z = sin(r) ./ r;
meshz(X,Y,Z);
title('墨西哥帽')
xlabel('x')
ylabel('y')
zlabel('z')

在这里插入图片描述

坐标轴控制: axis

在这里插入图片描述

eps

在这里插入图片描述

eps的作用

在 MATLAB 中,eps 表示的是机器精度,即 MATLAB 中浮点数的最大相对精度。它通常用于防止除以零的情况,特别是在涉及分母可能非常接近零的数值计算中。

eps 的作用和意义
  1. 数值计算中的保护机制:在数值计算中,如果分母非常接近零,会导致结果数值不稳定甚至出现无穷大(Inf)或 NaN(Not a Number)。通过在分母中加上 eps,可以确保分母不会为零或非常接近零,从而避免数值计算中的错误或不稳定结果。
  2. 机器精度:eps 的值约为 2.2204 ∗ 10 − 16 2.2204*10^{-16} 2.22041016 ,它是 MATLAB 中浮点数的最小差值,用于表示两个相邻浮点数之间的最小间隔。
  3. 在这里插入图片描述
方式优点缺点
mesh(X,Y,Z)明确指定 X 和 Y 网格,坐标轴显示准确参数较多,需要额外计算 X 和 Y 网格
mesh(Z)参数少,代码简洁坐标轴显示可能不准确,依赖默认行为
http://www.lryc.cn/news/2395798.html

相关文章:

  • 深入理解C#异步编程:原理、实践与最佳方案
  • 基于千帆大模型的AI体检报告解读系统实战:使用OSS与PDFBox实现PDF内容识别
  • Redis缓存落地总结
  • Spring,SpringMVC,SpringBoot
  • npm、pnpm、yarn使用以及区别
  • flutter加载dll 报错问题
  • 数据分析学习笔记——A/B测试
  • 【python深度学习】Day 41 简单CNN
  • 基于RK3568/RK3588/全志H3/飞腾芯片/音视频通话程序/语音对讲/视频对讲/实时性好/极低延迟
  • 解决 Win11 睡眠后黑屏无法唤醒的问题
  • [ElasticSearch] RestAPI
  • Linux中的shell脚本
  • dvwa3——CSRF
  • 【学习笔记】Transformer
  • 欢乐熊大话蓝牙知识12:用 BLE 打造家庭 IoT 网络的三种方式
  • 02.上帝之心算法用GPU计算提速50倍
  • MES管理系统:Java+Vue,含源码与文档,实现生产过程实时监控、调度与优化,提升制造企业效能
  • LeetCode算法题 (搜索二维矩阵)Day18!!!C/C++
  • VectorStore 组件深入学习与检索方法
  • HackMyVM-First
  • 30V/150A MOSFET 150N03在无人机驱动动力系统中的性能边界与热设计挑战
  • 数据共享交换平台之数据资源目录
  • 跨平台浏览器集成库JxBrowser 支持 Chrome 扩展程序,高效赋能 Java 桌面应用
  • WEBSTORM前端 —— 第3章:移动 Web —— 第3节:移动适配
  • 38.springboot使用rabbitmq
  • 弱光环境下如何手持相机拍摄静物:摄影曝光之等效曝光认知
  • Selenium Manager中文文档
  • WEB安全--SQL注入--MSSQL注入
  • 【HTML】基础学习【数据分析全栈攻略:爬虫+处理+可视化+报告】
  • SAP Business ByDesign:无锡哲讯科技赋能中大型企业云端数字化转型