利用matlab将三维数据画成三维立体图

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

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

第一步:导入数据

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

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

代码如下:

%% 导入数据
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的数据

代码如下:

%% 相关计算
[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)

实验结果:

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

完整代码:

%利用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的人,包括我自己一个勉励:路漫漫其修远兮,吾将上下而求索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真

世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真 照相机是日常生活中最常见的。它能把三维的空间图片等比例缩小投影在照片上,称为一个二维图像。 以下我们就讲一讲原理,并相应的进行matlab仿真。 在学之前&#xff0…

matlab 三维高程根据图片颜色给对应点赋予颜色

目录 1. 问题分析 2. 技术分析 3. 程序代码 4. 代码运行结果 1. 问题分析 日常工作尤其是测绘、地质、遥感行业,需要画DEM模型,并在这个模型的基础上,进行着色、渲染。比如,地质分析地面三维地表形变之时,需要根据D…

DirectX11中XNA数据库常见的几个函数

本博客的例子来自于《基于DirectX11的3D图形程序设计案例教程》 矩阵转换函数XMStoreFloat*x*(*表示正数,**矩阵) 如:XMStoreFloat4x4(以44矩阵为例) 函数定义: VOID XMStoreFloat4x4([out]…

电磁波谱详细划分

电磁波波段名字 波长范围(单位/m) 频率范围(单位/Hz) γ射线 <10-12 X射线 10-11~10-8 紫外线 10-8~3.8-7 可见光 (8.310-7~7.610-7m) 紫 3.810-7~4.310-7 蓝 4.310-7~4.710-7 青 4.710-7~5.010-7 绿 5.010-7~5.610-7 黄 5.610-7~5…

matlab 计算N天前(后)的日期

注意时间的格式&#xff1a;是字符串、数字还是日期&#xff1f; 下面是计算明天、今天、昨天的日期。 day1 datetime(datestr(now,yyyy-mm-dd))caldays(1)%tomorrowday0 datetime(datestr(now,yyyy-mm-dd))%todayday_1 datetime(datestr(now,yyyy-mm-dd))-caldays(1)%yest…

CAT arguments dimensions are not consistent.CAT参数的维度不一致。

错误实例&#xff1a; 在写符号矩阵的时候常常会出现下面错误&#xff1a; 错误&#xff1a;CAT arguments dimensions are not consistent. CAT参数的维度不一致。 举个栗子&#xff1a; clear; close all; clc; syms A_0 B_0 B C D E F G H ;T_3 [2*A_0 C-D*1i H G*1i;C…

传感器尺寸、像素、DPI分辨率、英寸、毫米的关系

虽然网上有很多这种资料&#xff0c;但是太过于复杂&#xff0c;每个人的说法都不一样&#xff0c;看的让人云里雾里的&#xff0c;我总结了一下&#xff0c;不知道对不对&#xff01; 1. 1英寸25.4mm 2. 传感器尺寸&#xff1a;传感器的尺寸是指传感器的大小&#xff0c;一般…

利用PS将n张图制作成动态GIF图

第一步&#xff1a;打开PS,导入图片&#xff0c;文件→脚本→将文件载入堆栈… 数据量大的话&#xff0c;就耐心等待一下。 第二步&#xff1a; 创建祯动画 如果没有这个&#xff0c;可以点击窗口→时间轴 如果祯排列顺序反了&#xff0c;这样 最后按照自己要求设置祯动画时间&…

matlab padarray函数详解

本文来自于matlab帮助页面&#xff0c;命令&#xff1a;help padarray 语法&#xff1a; B padarray(A,padsize) B padarray(A,padsize,padval) B padarray(A,padsize,padval,direction) gpuarrayB padarray(gpuarrayA,___) 描述&#xff1a; B padarray(A,padsize…

matlab 三维画图函数错误提示:数据维度必须一致

用三维画图软件经常会出现下面错误 以mesh(x,y,z)为例&#xff1a; 主要原因是因为没有注意Z数据格式&#xff0c;Z必须是矩阵形式。而且Z矩阵的m*n必须与y,x相关&#xff0c; mesh(X,Y,Z) 使用 Z 确定的颜色绘制线框网格&#xff0c;因此其颜色与曲面高度成比例。如果 X 和 …

毕业论文格式修改方法

好久没更新博客&#xff0c;忙着毕业论文。刚答完辩时就想写一篇关于论文格式的博客&#xff0c;这样在修改论文的时候很轻巧很多&#xff0c;别人花一两天修改好&#xff0c;我只需要几个小时&#xff08;包括图片大小、页面调整、错别字修改&#xff09;。话不多说&#xff0…

利用matlab实现SAR 图像线性拉伸显示

SAR 图像是一幅灰度图像&#xff0c;由于极少数点&#xff08;金属、裸地、建筑&#xff09;的后向散射太强&#xff0c;而导致SAR图像强度图的值分布范围很广&#xff0c;而图像显示值的分布为[0,255]&#xff0c;因此&#xff0c;如果直接显示&#xff0c;将会导致图像颜色很…

批量下载哨兵(Sentinel)数据

由于网络的原因&#xff0c;现在下载哨兵数据很难&#xff0c;直接在国外网站上下载&#xff0c;需要科学上网。某宝上虽然也提供下载哨兵数据的服务&#xff0c;但是价格太贵了&#xff0c;因此在网上找了很久&#xff0c;发现了一个非常非常实用的工具Internet Download Mana…

carsim输出端口2的宽度无效_PIO CORE 解析 (2)

下图为一般配置的PIO CORE:具有输入&#xff0c;输出和中断信号引脚&#xff0c;通过Avalon-MM接口与系统交互。下图提供了支持双向口功能的实例图&#xff1a;PIO内核的Avalon-MM接口由单个Avalon-MM从端口组成。从端口能够进行基本的Avalon-MM读和写传输。AvalonMM从端口提供…

利用matlab提取中心线

先看看代码运行结果&#xff08;红色部分表示河流中心线&#xff0c;黑色表示河流两岸&#xff01;&#xff09;&#xff1a; 注&#xff1a; 1. 由于河流两岸的坐标不是等距采样&#xff0c;所以无法保证100%准确&#xff0c;只要按着要求处理河岸坐标数据Shape文件&#xff…

b类 蚂蚁金服_股权设计与合伙制,解析蚂蚁金服与华为的顶层结构

股权设计与合伙制商道君这篇文章讲一讲股权设计与合伙制。股权设计和合伙制两者都是企业的顶层设计&#xff0c;股权的设计和合伙人制度有不同之处&#xff0c;但核心点都只有一个那就是——争夺企业的控制权。举例&#xff1a;马云与阿里巴巴马云说&#xff0c;如果阿里巴巴不…

SARScape二次开发-IDL编程心得

最近由于项目需要&#xff0c;需要使用IDL编程。此前从接触过编程&#xff0c;但好在有matlab、C编程的一些底子&#xff0c;所以自学编程&#xff0c;进行SARScape二次开发。相比MATLAB而言&#xff0c;IDL资料少&#xff0c;而且只有英文版的官方帮助&#xff0c;学起来非常费…

地址池命令 思科理由_论CCNA基础之常用命令

Cisco常用查看命令&#xff1a;Show VLAN brief //查看端口所属VLANShow ip int brief //查看端口的启用状态特权模式下Show running-config //查看设备当前运行配置特权模式下Show clock //查看当前系统时钟特权模式下 show log //查看log 日志特权模式下show interface //查看…

SARscape 二次开发讲解

官方给了一些讲解(地址&#xff1a;SARscape/SARscape IDL Scripting/SARscape batch object)&#xff0c;以及一些参考例子&#xff08;地址&#xff1a;SARscape/SARscape IDL Scripting/Example&#xff09;都可以用来学习参考。 SARscape 二次开发可以分为10个详细的步骤&a…

applicationproperties不是小叶子_三角梅整株叶子发黄从这里找原因,早解决早生长!...

家里的花草长得好不好&#xff0c;看叶子就行&#xff0c;长势好的叶子翠绿&#xff0c;油亮有光泽&#xff0c;长势不好的叶子发黄&#xff0c;暗淡无生机。所以如果花草的叶子不健康&#xff0c;那么就是哪里出了问题&#xff0c;需要及时找出原因解决。为什么家里盆栽的三角…