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

matlab根据数据画三维图_matlab导入三组数据画三维图首先先分析对象。将数据利用matlab画出图,最开始是导入数据,然后处理数据,最后将处理的数据画出来。所以我将它分为三个步骤。第一步:导入数据如果是mat数据。可以直接load 如果是txt数据。可以用txtread 如果是excel数据。可以用xlsread详细的,可以参考https://blog.csdn.net/blueskyjian/article/details/728…

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

Jetbrains全系列IDE稳定放心使用

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

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

第一步:导入数据

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

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

代码如下:

%% 导入数据
clear all;clc;close all;
load xyzdata.mat;%导入的的数据应当去除NaN值

这是我的数据截图:

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

注:需要注意的是,要将数据的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的数据

代码如下:

%% 相关计算
[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.001、0.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.001、0.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根据数据画三维图_matlab导入三组数据画三维图

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

完整代码:

%利用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.001、0.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.001、0.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.net/183176.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月11日 下午1:46
下一篇 2022年10月11日 下午1:46


相关推荐

  • 黑客编程入门 之 网络编程入门

    黑客编程入门 之 网络编程入门网络编程入门前言Socket技术详细介绍Socket编程所需函数前言  “任何职业都可以成为黑客。你可以是一个木匠黑客。不一定是高科技。只要与技能有关,并且倾心专注于你正在做的事情,你就可能成为黑客。”——引自《黑客伦理与信息时代精神》  在这里引入黑客定义就是想提醒自己和大家,真正的黑客精神:Open,Free,Share,热衷共享最新研究。时刻谨记黑客精神,不要现在盛行的”ScriptKid”(专指只会使用现成软件进行攻击以取得满足感的,危害网络空间安全的人)。希望大家都能够为网络环境贡献自

    2022年6月18日
    40
  • 全网最强最简单的DeepSeek本地化部署教程,手把手教你搞定!

    全网最强最简单的DeepSeek本地化部署教程,手把手教你搞定!

    2026年3月16日
    2
  • 谷歌收购摩托罗拉移动

    谷歌收购摩托罗拉移动明眼人都看得出来 谷歌这是要借助摩托罗拉在手机上的大量专利来震慑某一些竞争对手 警告其不要轻举妄动 起到保护尚在成长当中的 android 系统的目的 谷歌做出这样的举动并不令人吃惊 吃惊的是摩托罗拉做出这样的决策 摩托目前在 android 市场上虽然不是最红火的 但也已经是挺过了最艰难的时刻了 正是收获的季节了 突然这么简单就放手了 确实很有魄力 摩托豪赌 android 系统 当然不希望其这么快被打败

    2026年3月20日
    2
  • linux生成md5文件_keil5如何生成bin文件

    linux生成md5文件_keil5如何生成bin文件MDK5如何生成bin文件MDK5在生成bin文件时经常会遇到找不到文件路径导致的生成失败,采用下面这条命令可以直接在.axf目录下生成对应的bin文件:再mdk的Target->User下面这条命令:fromelf.exe–bin-o“$L@L.bin”“#L”生成结果:…

    2022年10月20日
    4
  • linux下的so、o、lo、a、la文件的区别

    linux下的so、o、lo、a、la文件的区别

    2022年3月5日
    78
  • word页码怎么从指定页开始设置?

    word页码怎么从指定页开始设置?我们在日常使用 word 的时候可能需要在 word 中添加页码 但是 word 设置页码都是默认从第一页开始的 要怎么从当前页设置开始的页码格式呢 8 在弹出的 页码格式 弹窗中 给页码编号选择 起始页码 可以看到后面的文本框自动填充了 1 当然也可以改成自己想要的数字 7 开始给指定的页面给 Word 设置页码 点击左上角的 页码 9 操作完上面的步骤之后 就已经完成了从指定页 任意页给 Word 文档设置页码的操作 6 再将鼠标移动到灰色状态的 链接到前一节 点击一下 3 然后点击一下分节符下面的 下一页

    2026年3月19日
    1

发表回复

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

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