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

【Matlab绘图】从Excel导入表格并进行三维绘图

前言

  • 今天手头上拿到一份论文的xlsx数据,要求使用MATLAB绘制进行三维图标坐标绘制。那么我们来看看如何使用如下数据进行绘图。请添加图片描述

  • 如上数据所示,数据是一个30行25列的数据,数据的内容是论文某项模型模拟的结果,我们希望把横坐标x取值30行,纵坐标y取值20列,而其横纵坐标对应的表格数值设置为z。


1 三维散点图scatter3

1-1 代码解释
  • 我们直接看代码
clc;
clear all;
filename = 'data.xlsx'; 
T = readtable(filename);
dataMatrix = table2array(T);z=[dataMatrix];
[x, y]=meshgrid(1:size(z,1),1:size(z,2));
xx=x(:); 
yy=y(:); 
zz=z(:); 
scatter3(xx,yy,zz,'filled');
  • clc;clear all;
    • clc; 命令用于清除MATLAB命令窗口中的所有输出,以便开始一个干净的新会话。
    • clear all; 命令用于清除工作空间中的所有变量,释放内存。
  • dataMatrix = table2array(T);:将表格 T 转换为矩阵 dataMatrix
  • [x, y] = meshgrid(1:size(z,1),1:size(z,2));meshgrid 函数用于生成网格点坐标。这里,它生成了两个矩阵 xy,它们的大小与 z 相同。x 矩阵的每个元素表示网格点的x坐标,y 矩阵的每个元素表示网格点的y坐标。size(z,1)size(z,2) 分别返回矩阵 z 的行数和列数。也就是30和25
  • xx=x(:);yy=y(:);zz=z(:);将矩阵 xyz 转换为列向量 xxyyzz。这是因为 scatter3 函数需要输入向量的形式,而不是矩阵。
1-2 scatter3函数API
  • scatter3函数用于在三维空间中绘制散点图。其基本语法如下:
scatter3(x, y, z)
scatter3(x, y, z, s)
scatter3(x, y, z, s, c)
scatter3(..., 'filled')
  • xyz:这三个参数分别代表三维空间中的x、y、z坐标。
  • s:可选参数,用于设置每个散点的大小。默认值为36平方点。
  • c:可选参数,用于设置每个散点的颜色。可以是一个颜色值或颜色映射。
  • 'filled':可选参数,用于填充散点。
1-3 效果展示
  • 请添加图片描述

  • 值得注意的是如果使用的是MATLAB 2013a 版本之前的版本,readtable 函数是不可用的,需要替换为底下的xlsread

[dataMatrix, txt, raw] = xlsread(filename); 

2 三维表面图 surf

2-1 代码实现
  • 先看代码
clc;
clear all;
filename = 'data.xlsx'; 
[dataMatrix, txt, raw] = xlsread(filename); % 生成网格
[x, y] = meshgrid(1:size(dataMatrix, 2), 1:size(dataMatrix, 1)); % 生成网格,注意行列的顺序% 创建三维表面图,使用 'scatter' 形式来近似散点图
surf(x, y, dataMatrix, 'EdgeColor', 'none', 'Marker', 'o', 'MarkerSize', 5);
xlabel('X Axis');
ylabel('Y Axis');
zlabel('Data Value');
title('3D Surface Plot with Scatter Points');
view(60, 45); 
  • view(60, 45); 是调整视角,这个函数允许用户设置视角的仰角(elevation angle)和方位角(azimuth angle)。
    • 仰角(elevation angle):这是从 x 轴正方向开始测量的角度,范围通常是从 -90° 到 90°。0° 表示从正面看,90° 表示从顶部看,-90° 表示从底部看。
    • 方位角(azimuth angle):这是从正 y 轴开始测量的角度,范围通常是从 0° 到 360°。0° 或 360° 表示从正方向看,90° 表示从左侧看,180° 表示从背面看,270° 表示从右侧看。
2-2 surf函数API
  • MATLAB中的surf函数用于创建三维曲面图。以下是surf函数的详细API:
surf(X,Y,Z)
surf(X,Y,Z,C)
surf(Z)
surf(...,PropertyName,PropertyValue,...)
h = surf(...)
  • surf(X,Y,Z):使用矩阵XYZ来绘制三维曲面图。XY定义网格点的x和y坐标,Z定义网格点的z坐标。
  • surf(X,Y,Z,C):使用矩阵XYZC来绘制三维曲面图。C用于指定颜色数据,如果未提供,则使用与Z相同的数据。
  • surf(Z):当Z是一个矩阵时,surf函数会自动生成网格线,并使用Z的列数和行数作为x和y坐标。
  • surf(...,PropertyName,PropertyValue,...):允许您使用名称-值对参数来设置曲面图的属性。例如,您可以使用'EdgeColor'属性来设置边缘颜色。
  • h = surf(...):返回曲面图的句柄,以便您可以对其进行进一步的修改。
2-3 效果展示
  • 2012版本请添加图片描述

  • 新版---------------------------------------请添加图片描述


3 三维折线图plot3

3-1 问题描述
  • 直接使用plot3对画图操作,会出现一些问题
clc;
clear all;
filename='data.xlsx'
[dataMatrix, txt, raw] = xlsread(filename); 
z=[dataMatrix]
[x, y] = meshgrid(1:size(dataMatrix, 2), 1:size(dataMatrix, 1));
xx = x(:);
yy = y(:);
zz = z(:); 
plot3(xx, yy, zz);grid on; 
  • 由于是连续画点连线,导致每换到下一列的时候上一列结尾的数据和下一列的开头连在一起了,这是我们不希望的。请添加图片描述
3-2 修正代码
  • 我们使用循环一次只画一列数据,最后一次换列画图,得到正确的图像
clc;
clear all;
filename='data.xlsx'
[dataMatrix, txt, raw] = xlsread(filename); for col = 1:25
% 提取当前列的数据
z = dataMatrix(1:30, col);
% 创建网格
[x, y] = meshgrid(1:30,col);
xx = x(:); 
yy = y(:); 
zz = z(:);
% 绘制当前列的数据
plot3(xx, yy, zz); 
xlabel('X 坐标');
ylabel('Y 坐标');
zlabel('Z 值');
grid on; 
hold on; % 保持当前图形,以便在同一图形上绘制下一个列的数据pause(0.5);
end
3-3 效果展示
  • 2012版本请添加图片描述

  • 新版----------------------------------------请添加图片描述


4 总结

  • 本文介绍了三种绘制MATLAB三维点图的方法,三维散点图scatter3,三维表面图surf, 三维折线图plot3
  • 如有错误,欢迎指出,感谢大家的支持!
    请添加图片描述

相关文章:

【Matlab绘图】从Excel导入表格并进行三维绘图

前言 今天手头上拿到一份论文的xlsx数据,要求使用MATLAB绘制进行三维图标坐标绘制。那么我们来看看如何使用如下数据进行绘图。 如上数据所示,数据是一个30行25列的数据,数据的内容是论文某项模型模拟的结果,我们希望把横坐标x取…...

IDEA里面的长截图插件

1.我的悲惨经历 兄弟们啊,我太惨了,我刚刚在准备这个继承和多态的学习,写博客的时候想要截图代码,因为这个代码比较大,一张图截取不下来,所以需要长截图,之前使用的qq截图突然间拉胯&#xff0…...

(15)衰落信道模型作用于信号是相乘还是卷积

文章目录 在使用衰落信道进行通信系统仿真时,有的资料中是用相乘的方法,有的资料中用的是卷积的方法。那么,衰落信道模型作用于传输信号时,是该用相乘还是卷积呢?下面针对该问题给出回答。 在仿真瑞利衰落信道对传输信…...

(C语言贪吃蛇)14.用绝对值方式解决不合理的走位

目录 前言 解决方式 运行效果 总结 前言 我们上节实现了贪吃蛇四方向走位,但是出现了一些不合理的走位,比如说身体节点和头节点重合等等,本节我们便来解决这个问题。 我们希望贪吃蛇撞到自身时游戏会重新开始,并且贪吃蛇的运动方…...

[深度学习]基于YOLO高质量项目源码+模型+GUI界面汇总

以下项目全部是本人亲自编写代码,项目汇总如下: 序号项目名称下载地址1基于yolov8的辣椒缺陷检测系统python源码onnx模型评估指标曲线精美GUI界面.zip点我下载2基于yolov8的海上红外目标系统python源码onnx模型评估指标曲线精美GUI界面.zip点我下载3基于…...

仕考网:公务员国考有三不限岗位吗?

国家公务员考试中的“三不限”岗位,即不限制专业背景、政治面貌、基层工作经验的职位。在国考中,是有的但是数量比较少。 这些岗位主要集中在省级及以下单位,以民航空警和铁路公安为主。其中,有一半的职位是面向四项目人员&#…...

RabbitMq生产者可靠性

基本概念: RabbitMQ生产者可靠性主要涉及确保消息能够可靠地发送到RabbitMQ服务器,并且在出现故障时能够进行适当的处理。 消息确认机制(Publisher Confirms): 启用 Publisher Confirms:生产者在发送消息之…...

Linux Debian12使用Podman安装bwapp靶场环境

一、bwapp简介 bWAPP(buggy Web Application)是一个开源的、故意设计有漏洞的Web应用程序,旨在帮助安全爱好者、开发人员和学生发现和防止Web漏洞。它包含了超过100种不同的漏洞,涵盖了所有主要的已知Web漏洞。 二、bwapp下载 …...

小白快速上手 Docker 02 | Docker 容器生命周期

容器生命周期 下图显示了容器生命周期的简化状态。 CreatedRunningPausedStoppedDeleted 现在让我们逐一讨论容器生命周期的每个状态: 创建状态(Created) 这是容器生命周期的第一个状态,在这个阶段,容器被创建但…...

深刻理解Redis集群(下):Redis 哨兵(Sentinel)模式

背景 现在对3个节点的sentinel进行配置。sentinel的配置文件在redis的安装目录中已经存在,只需要复制到指定的位置即可。 sentinel是独立进程,有对应的脚本来执行。 基于之前的redis 一主二从的架构,我们继续启动3个sentinel进程。 哨兵模式的…...

STM32重启源深度解析

文章目录 STM32重启源深度解析一、STM32重启概述二、硬件层面的重启源1、电源异常电压不稳定:电源供电不足: 2、复位电路故障复位引脚异常:复位电路设计不合理: 3、外部干扰电磁干扰:静电干扰: 三、软件层面…...

windows配置C++编译环境和VScode C++配置(保姆级教程)

1.安装MinGW-w64 MinGW-w64是一个开源的编译器套件,适用于Windows平台,支持32位和64位应用程序的开发。它包含了GCC编译器、GDB调试器以及其他必要的工具,是C开发者在Windows环境下进行开发的重要工具。 我找到了一个下载比较快的链接&#…...

【微信小程序前端开发】入门Day03 —— 页面导航、事件、生命周期、WXS 脚本及自定义组件

1. 页面导航 导航方式 声明式导航&#xff1a;使用<navigator>组件实现页面跳转。 <!-- 导航到tabBar页面 --> <navigator url"/pages/message/message" open-type"switchTab">导航到消息页面</navigator><!-- 导航到非tabBar页…...

【51单片机】点亮LED之经典流水灯

开发环境 开发板&#xff1a;普中51-单核-A2单片机&#xff1a;STC89C52RC&#xff08;双列直插40引脚 DIP40&#xff09;Keil uVision5 v9.61 最新版破解方法自行百度&#xff0c;相关文档和视频资料很多&#xff0c;我自己将这一操作记录下来当做博客发布&#xff0c;CSDN以…...

深度学习数据增强的常用方法

以下是在深度学习中经常使用的图像增强的方法 目录 前言 1、加噪声 2、调整亮度 3、cutout 4、旋转 5、对比度增强 6、仿射变化扩充图像 7、HSV数据增强 8、错切变化扩充图像 9、平移扩充图像&#xff0c;根图像移动的像素距离可自行调整&#xff0c;具体方法如下注释所示 10、…...

影院管理新篇章:小徐的Spring Boot应用

第三章 系统分析 整个系统的功能模块主要是对各个项目元素组合、分解和更换做出对应的单元&#xff0c;最后在根据各个系统模块来做出一个简单的原则&#xff0c;系统的整体设计是根据用户的需求来进行设计的。为了更好的服务于用户要从小徐影城管理系统的设计与实现方面上做出…...

【H2O2|全栈】关于CSS(9)CSS3扩充了哪些新鲜的东西?(二)

目录 CSS3入门 前言 准备工作 伪元素补充 :before :after 文本溢出属性 转换效果 预告和回顾 后话 CSS3入门 前言 本系列博客主要介绍CSS相关的知识点。 这一期主要介绍以下几个CSS3的知识点&#xff1a; 伪元素补充文本溢出属性转换 没有基础的朋友&#xff…...

java中Files和File对象详情和区别比较

Files 和 File 是 Java 中用于文件处理的两个不同类&#xff0c;分别属于 java.nio.file 和 java.io 包&#xff0c;它们的设计思路和用途有所不同。以下是它们的详细区别&#xff1a; 1. File 对象 File 是 Java 中最早用于处理文件和目录的类&#xff0c;它来自 java.io 包&…...

Unity3D PostLateUpdate为何突然占用大量时间详解

在Unity3D中&#xff0c;直接名为PostLateUpdate的函数并不是Unity标准API中的一部分。然而&#xff0c;这个术语可能指的是在LateUpdate之后执行的某些自定义逻辑或Unity内部机制中的某种后续处理。当提到PostLateUpdate或LateUpdate突然占用大量时间时&#xff0c;我们需要考…...

如何快速熟悉项目

背景 最近新入职&#xff0c;对项目很不熟悉&#xff0c;也不能全部依赖别人&#xff08;别人也不会全心全意去帮你&#xff09;&#xff0c;你大部分还是只能靠自己。材料就是&#xff1a;文档&#xff0c;代码&#xff0c;开发环境。 但是文档&#xff0c;代码&#xff0c;都…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...