前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >matlab根据数据画三维图_matlab导入三组数据画三维图

matlab根据数据画三维图_matlab导入三组数据画三维图

作者头像
全栈程序员站长
发布于 2022-11-10 08:25:35
发布于 2022-11-10 08:25:35
2.1K00
代码可运行
举报
运行总次数:0
代码可运行

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

首先先分析对象。将数据利用matlab画出图,最开始是导入数据,然后处理数据,最后将处理的数据画出来。

所以我将它分为三个步骤。

第一步:导入数据

  • 如果是mat数据。可以直接load
  • 如果是txt数据。可以用txtread
  • 如果是excel数据。可以用xlsread

详细的,可以参考https://blog.csdn.net/blueskyjian/article/details/72832449

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%% 导入数据
clear all;clc;close all;
load xyzdata.mat;%导入的的数据应当去除NaN

这是我的数据截图:

注:需要注意的是,要将数据的NaN(空值)去掉。可以在matlab工作去查看,并去除。

第二步:数据处理

由于我们的x、y轴数据,并不是1 、 2 、3等这样的整数排列的,所以必须利用原有的数据,重新构造三维数据。

重构三维数据主要有两步:

  • 第一步:栅格化,用到meshgrid()函数
  • 第二步:插值,用到griddata()函数

栅格化原理、效果可以参考https://blog.csdn.net/shanchuan2012/article/details/72772191

简单来时就是绘制网格

插值原理、效果可以参考https://blog.csdn.net/pingmin2014/article/details/47298947

简单来说就是估计绘制网格格点的z的数据

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%% 相关计算
[a,~]=size(xRow);%x轴数据总共*******行;
xmax=max(xRow);%x轴数据最大值为********
xmin=min(xRow);%x轴数据最小值为*********
%下面两行是测试用的,便于设置间隔值
%delta_x=xmax-xmin;%x轴范围宽度值为*****
%delta_x/a;%z轴间隔大约为1.4796e-04,可以设置为0.01,如果想要更为精确,可以设置为0.0010.0001
[b,~]=size(yCol);%y轴数据为********
ymax=max(yCol);%y轴数据最大值为********
ymin=min(yCol);%y轴数据最小值为********
%下面两行是测试用的,便于设置间隔值
%delta_y=ymax-ymin;%轴范围宽度值为为*********
%delta_y/b;%y轴间隔大约为9.9876e-05,可以设置为0.01,如果想要根为精确,可以设置为0.0010.0001

第三步:画图

这一步需要注意的是:选好网格间隔,网格间隔越小,精确度越高,相对应的,计算量越大,电脑性能要求越高。

电脑性能不高的,可以跳大间隔,同时优化代码,清除画图用不了的变量。

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%% 重构三维数据,画图
%间隔为 0.05的时候,X Y数据为 *****×****,  电脑一般的,将间隔调大
%间隔为    1的时候,X Y数据为 ***×****,    电脑  好的,将间隔调小
[X,Y]=meshgrid(xmin:1:xmax,ymin:1:ymax);%将x、y轴网格化,重构用于画图x、y轴数据
Z=griddata(xRow,yCol,z,X,Y);%插值,重构用于画图的Z轴数据
clear a b xmax xmin ymin ymax xRow yCol z;
mesh(X,Y,Z)

实验结果:

由于保密需要吗,图像结果打上马赛克,数据也不能提供。

完整代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%利用txt excel等大量x y z数据,化三维立体图
%% 导入数据
clear all;clc;close all;
load xyzdata.mat;%导入的的数据应当去除NaN%% 相关计算
[a,~]=size(xRow);%x轴数据总共********行;
xmax=max(xRow);%x轴数据最大值为**********
xmin=min(xRow);%x轴数据最小值为********
%下面两行是测试用的,便于设置间隔值
%delta_x=xmax-xmin;%x轴范围宽度值为*****
%delta_x/a;%z轴间隔大约为1.4796e-04,可以设置为0.01,如果想要更为精确,可以设置为0.0010.0001
[b,~]=size(yCol);%y轴数据为******
ymax=max(yCol);%y轴数据最大值为******
ymin=min(yCol);%y轴数据最小值为********
%下面两行是测试用的,便于设置间隔值
%delta_y=ymax-ymin;%轴范围宽度值为为******
%delta_y/b;%y轴间隔大约为9.9876e-05,可以设置为0.01,如果想要根为精确,可以设置为0.0010.0001
%% 重构三维数据,画图
%间隔为 0.05的时候,X Y数据为 *****×****,  电脑一般的,将间隔调大
%间隔为    1的时候,X Y数据为 ***×***,    电脑  好的,将间隔调小
[X,Y]=meshgrid(xmin:1:xmax,ymin:1:ymax);%将x、y轴网格化,重构用于画图x、y轴数据
Z=griddata(xRow,yCol,z,X,Y);%插值,重构用于画图的Z轴数据
clear a b xmax xmin ymin ymax xRow yCol z;
mesh(X,Y,Z)

给学matlab的人,包括我自己一个勉励:路漫漫其修远兮,吾将上下而求索。

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

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
matlab语法 axis on,matlab axis
axisoff;%去掉坐标轴axistight;%紧坐标轴axisequal;%等比坐标轴axis([-0.1, 8.1, -1.1, 1.1]);%坐标轴的显示范围% gca: gca, h=figure(…);
全栈程序员站长
2022/07/01
2.1K0
matlab语法 axis on,matlabaxis
axis( [xmin xmax ymin ymax] ):可以设置当前坐标轴 x轴 和 y轴的限制范围
全栈程序员站长
2022/07/01
1.5K0
matlab语法 axis on,matlabaxis
matlab画三维图形_matlab的三维函数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
1.2K0
matlab画三维图形_matlab的三维函数
Matlab画三维图_读书笔记图画
plot3 基本的三维曲线图绘制 plot3(x,y,z),x,y,z均为相同长度的向量,会得到三个向量相同下标构成的的三维坐标(xi,yi,zi)(i=1~n)连的曲线
全栈程序员站长
2022/11/10
1.1K0
Matlab画三维图_读书笔记图画
Matlab画图-非常具体,非常全面
强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本參数就能得到所需图形,这类函数称为高层画图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层画图操作。这类操作将图形的每一个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每一个对象分配一个句柄,能够通过句柄对该图形元素进行操作,而不影响其它部分。
全栈程序员站长
2021/11/18
2.1K0
Matlab绘图
(1)plot函数的基本用法: plot(x,y)其中,x和y分别用于存储x坐标和y坐标数据。
十二惊惶
2024/02/28
2160
Matlab绘图
Matlab基本语法5
二维数据可视化 1.基本绘图函数 plot(y):如果是复数向量,则以实部为横坐标,以虚部为纵坐标 plot(x,y) plot(x,y,s):s表示字符串标记 plot(x1,y1,s1,...) 2.子图的绘制 subplot(mnp)或者subplot(m,n,p):共m行,每行n个图 3.设置坐标轴 axis(xmin xmax ymin ymax):定义x轴和y轴的范围 axis(xmin xmax ymin ymax zmin zmax):定义x轴和y轴和z轴的范围 axis(xmin xmax
瓜大三哥
2018/02/26
1.3K0
Matlab基本语法5
Matlab中的数据预处理-归一化(mapminmax)与标准化(mapstd)
Process matrices by mapping row minimum and maximum values to [-1 1]
全栈程序员站长
2022/07/02
1.5K0
Matlab绘图(一二三维)
强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
全栈程序员站长
2022/07/15
2.2K0
看完这篇,还有你不会画的热力图吗?
基于以上概念,不难理解,绘制热力图所需要的数据往往是3维或者更高维度的,下面给出三维的两种常见的数据样本格式:
巴山学长
2019/10/22
5.5K0
看完这篇,还有你不会画的热力图吗?
如何利用matlab画三维图_平面图怎么画
本人是一位数学科研工作者,平时的文章采用的是latex编写,里面图形的生成主要来自于Matlab(个人对Matlab非常喜欢,感觉上手比较容易,更亲民)。对于图形的处理比较频繁,而且总会有一些特殊的需求,每次都要上网搜查,或者查以前用过的命令,经常花了很多时间,实现了一点小要求,事后回想有点得不偿失。因此借助这个平台,记录自己在Matlab使用过程中碰到的一些问题,给出我找到或者知道的解决办法,不过方法不是唯一的,也希望广大网友能有更好的思路提供。后续碰到的问题我也会继续更新(如果我有时间的话哈)。
全栈程序员站长
2022/11/10
4K0
如何利用matlab画三维图_平面图怎么画
[完整案例]编程实现动物头像定位-02
然后我们重新计算几个坐标的位置,其实就是在对应的轴上的长度,然后再乘以我们的固定长度,也就是以下四行代码的含义,因为需要换成固定大小之后的相对位置
Tom2Code
2022/11/21
3480
[完整案例]编程实现动物头像定位-02
Matlab系列之二维图形(下)
交互式绘图的意思就是可以使用鼠标对图形进行操作,具体的实现看待会的演示,首先了解几个会用到的函数:ginput、gtext和zoom,其中ginput只能用于二维图形绘制,另外两个还适用于三维图形绘制。
狂人V
2021/04/29
1.5K0
Matlab系列之二维图形(下)
matlab归一化方法,数据归一化的基本方法
简单公式表达:y = (x-min Value)/(max Value-min Value)
全栈程序员站长
2022/09/10
3K0
Matlab系列之二维图形(上)
上一篇已经对图形的属性有过介绍,在此基础上来进行二维以及后续三维图形的操作(注:没接触过其他维度的操作,就不折腾相关的内容了),将会更容易理解这些属性的用法,当然,全部的属性使用都来一遍,感觉就不太实际了,大可不必~
狂人V
2021/03/10
1.9K0
BP神经网络的Matlab实现——人工智能算法
这几天在各大媒体上接触到了人工智能机器学习,觉得很有意思,于是开始入门最简单的机器算法——神经网络训练算法(Neural Network Training);以前一直觉得机器学习很高深,到处是超高等数学、线性代数、数理统计。入坑发现确实是这样!但是呢由项目实例驱动的学习比起为考试不挂科为目的的学习更为高效、实用!在遗传算法、神经网络算法的学习入门之后觉得数学只要用心看没问题的(即使是蒙特卡洛和马尔科夫问题),但是呢需要把数学统计应用到程序中,来解决实际的问题这是两码事。主要呢还是需要动手打代码。下面呢是今天的机器学习之神经网络学习入门记录篇,希望帮助到同样入门采坑的哥们,一起进步!
全栈程序员站长
2022/06/29
1.5K0
BP神经网络的Matlab实现——人工智能算法
matlab流场可视化后处理「建议收藏」
2020.04.01 更新,添加了对新文章的引用 2021.04 更新,添加了Volume Viewer APP的介绍。把网址改成了超链接形式。
全栈程序员站长
2022/11/15
2.1K0
matlab流场可视化后处理「建议收藏」
利用matlab画三维图像_使用变身卡进行擂台切磋
除了mesh函数meshc函数还能在xy平面上绘制曲面的等高线,meshz函数还能在xy平面上绘制曲面的底座
全栈程序员站长
2022/11/07
1.3K0
利用matlab画三维图像_使用变身卡进行擂台切磋
matlab三维图形的绘制[通俗易懂]
除此之外还有 meshc函数:除了mesh函数图形外,还在xy平面上绘制曲面的等高线。 meshz函数:除了mesh函数图形外,还在xy平面上绘制曲面的底座。
全栈程序员站长
2022/11/07
2.7K0
matlab三维图形的绘制[通俗易懂]
Matlab中axis函数使用
坐标轴范围,指定为包含 4 个、6 个或 8 个元素的向量。对于笛卡尔坐标区,以下列形式之一指定范围:
全栈程序员站长
2022/09/02
3.7K0
Matlab中axis函数使用
相关推荐
matlab语法 axis on,matlab axis
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文