【MATLAB】三维绘图 三维数据插值

前言

  • 调用一下MATLAB自带的seamount.mat数据文件
load seamount
plot3(x,y,z,'.','markersize',12)
xlabel('Longitude'), ylabel('Latitude'), zlabel('Depth in Feet')
grid on

在这里插入图片描述

  • 采用函数griddata对三维数据进行插值,并通过变量xiyi控制插值范围和数量
figure
[xi, yi] = meshgrid(210.8:0.01:211.8, -48.5:0.01:-47.9);
zi = griddata(x,y,z, xi,yi);
surf(xi,yi,zi);
xlabel('Longitude'), ylabel('Latitude'), zlabel('Depth in Feet')

在这里插入图片描述

MATLAB插值函数

这里引用一下论坛大佬对MATLAB插值函数的回复

2013b 中已经没有 griddata3 了,统一为 griddata,它能同时支持 2-D和3-D内插 (也就是已经包含了旧版本里的 griddata3 的功能)。请查看:http://www.mathworks.com/help/matlab/ref/griddata.html

另外 n >= 2 维的内插有一个新函数叫 griddatan,前面的 griddata 是 griddatan 取 n = 2 和 3 的两种特殊情形。griddatan 请参考:http://www.mathworks.com/help/matlab/ref/griddatan.html

还有一个TriScatteredInterp,同时支持 2-D 和 3-D 内插, 其效率比 griddata 更高,而且使用也更方便,因为它是返回的是一个内插式 (interpolant ) F, 类似函数句柄的东西 (但并非严格意义上的函数句柄),利用 F,可以直接计算网格点上的函数值。关于 TriScatteredInterp 的用法,请参考:http://www.mathworks.com/help/matlab/ref/triscatteredinterpclass.html?searchHighlight=TriScatteredInterp
不过,尽管 TriScatteredInterp 已经比 griddata 更有优势了,但是它在将来某个新版本中会被remove掉(参考至2013b的help文档:Note: TriScatteredInterp will be removed in a futurerelease. Use scatteredInterpolant instead.),取而代之的会是下面两个更强大的函数: scatteredInterpolantgriddedInterpolant

2012 里新增两个很有用的内插函数,scatteredInterpolant 和 griddedInterpolant,其中,scatteredInterpolant 支持 2-D 和 3-D 内插,就像 griddata/TriScatteredInterp 一样,但是功能更强大,它也是返回一个内插式 F(interpolant ),然后根据 F 可以求出内插点的函数值。请查看 http://www.mathworks.com/help/matlab/ref/scatteredinterpolantclass.html

griddedInterpolant 支持 n-D 内插,n = 1,2,3,4,5,。。。,这个类似于 griddatan,但功能更强大,它也是返回一个内插式 F(interpolant ),可以直接用F求内插点的函数值。请查看:http://www.mathworks.com/help/matlab/ref/griddedinterpolantclass.html

除了以上函数,再加上 interp1,interp2,interp3等,基本包含matlab里全部主流内插函数。

三维绘图

常用三维绘图指令如下(下图转自知乎
在这里插入图片描述
指令多种多样,重点在于理解指令使用的内涵,一般常用的有画网状图的mesh,曲面图的surf和立体曲线图plot3

绘制立体曲线图不需要建立两个单调递增的网格矢量,如[X,Y] = meshgrid(1:3,10:14)
在这里插入图片描述

绘制立体曲线图
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on
axis square

在这里插入图片描述

绘制曲面图
k = 5;
n = 2^k-1;
[x,y,z] = sphere(n);%产生球,将坐标输入到变量
c = hadamard(2^k); %定义颜色
surf(x,y,z,c);
colormap([1  1  0; 0  1  1])
axis equal

在这里插入图片描述

等高线在XY平面的投影

加载MATLAB的数据,利用contour函数完成等高线图绘制。

load penny;
figure;
contour(flipud(P));
axis square;

在这里插入图片描述

  • 8
    点赞
  • 156
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Matlab基础及应用教程,适合数学建模的人学习,适合教学使用,目录: 第 1 章 MATLAB简介........................................1 1.1 MATLAB 的发展沿革...........................1 1.2 MATLAB 的特点及应用领域...............2 1.3 MATLAB 系统及工具箱.......................3 1.4 MATLAB 的安装和启动.......................4 1.5 MATLAB 操作界面...............................5 1.5.1 命令窗口(Command Window)...5 1.5.2 历史命令(Command History)窗口...............................9 1.5.3 当前目录(Current Directory) 窗口..........................................11 1.5.4 工作空间(Workspace)窗口......12 1.5.5 帮助(Help)窗口........................13 1.6 MATLAB 的各种文件.........................14 1.7 MATLAB 的搜索路径.........................14 1.7.1 搜索路径机制和搜索顺序.......14 1.7.2 设置搜索路径的方法 ..............15 1.8 MATLAB 窗口操作命令.....................16 1.9 小结......................................................18 1.10 习题....................................................18 第 2 章 MATLAB 语言基础............................20 2.1 基本概念..............................................20 2.1.1 MATLAB 数据类型.................20 2.1.2 常量与变量..............................21 2.1.3 标量、向量、矩阵与数组.......22 2.1.4 字符串......................................23 2.1.5 运算符......................................23 2.1.6 命令、函数、表达式和语句...26 2.2 向量运算..............................................27 2.2.1 向量的生成..............................27 2.2.2 向量的加减和数乘运算...........28 2.2.3 向量的点、叉积运算 ..............29 2.3 矩阵运算..............................................31 2.3.1 矩阵元素的存储次序 ..............31 2 2.3.2 矩阵元素的表示及相关操作...31 2.3.3 矩阵的创建 ..............................34 2.3.4 矩阵的代数运算.......................40 2.4 数组运算...............................................48 2.4.1 多维数组元素的存储次序.......48 2.4.2 多维数组的创建.......................48 2.4.3 数组的代数运算.......................51 2.4.4 数组的关系与逻辑运算...........54 2.4.5 数组和矩阵函数的通用形式...57 2.5 字符串运算...........................................59 2.5.1 字符串变量与一维字符 数组..........................................59 2.5.2 对字符串的多项操作...............60 2.5.3 二维字符数组...........................62 2.6 小结 ......................................................63 2.7 习题 ......................................................63 第 3 章 MATLAB 数值运算.............................65 3.1 多项式...................................................65 3.1.1 多项式的表达和创建...............65 3.1.2 多项式的四则运算...................65 3.1.3 多项式求值和求根运算...........68 3.1.4 多项式的构造...........................70 3.2 插值和拟合...........................................71 3.2.1 多项式插值和拟合...................71 3.2.2 最小二乘法拟合.......................77 3.3 数值微积分...........................................79 3.3.1 微分和差分 ..............................79 3.3.2 牛顿-科茨系列数值积分 公式..........................................81 3.4 线性方程组的数值解...........................83 3.4.1 直接法......................................84 3.4.2 迭代法......................................85 3.5 稀疏矩阵...............................................89 3.5.1 稀疏矩阵的建立.......................90 3.5.2 稀疏矩阵的存储......................92 3.5.3 用稀疏矩阵求解线性方程组...93 3.6 常微分方程的数值解...........................95 3.6.1 欧拉法......................................96 3.6.2 龙格-库塔方法........................99 3.7 小结.....................................................102 3.8 习题.....................................................102 第 4 章 结构数组与细胞数组...................104 4.1 结构数组.............................................104 4.1.1 结构数组的创建.....................104 4.1.2 结构数组的操作.....................106 4.2 细胞数组.............................................113 4.2.1 细胞数组的创建.....................113 4.2.2 细胞数组的操作.....................115 4.2.3 结构细胞数组.........................123 4.3 小结.....................................................124 4.4 习题.....................................................124 第 5 章 MATLAB 符号运算...........................128 5.1 符号对象及其表达方式......................128 5.1.1 符号常量和变量.....................128 5.1.2 符号表达式.............................130 5.1.3 符号矩阵.................................131 5.2 符号算术运算 .....................................132 5.2.1 符号对象的加减.....................132 5.2.2 符号对象的乘除.....................133 5.3 独立变量与表达式化简......................134 5.3.1 表达式中的独立变量 .............134 5.3.2 表达式化简.............................135 5.4 符号微积分运算..................................140 5.4.1 符号极限.................................140 5.4.2 符号微分.................................141 5.4.3 符号积分.................................141 5.4.4 符号 Taylor 级数展开.............142 5.5 符号积分变换 .....................................144 5.5.1 傅里叶变换及其反变换..........144 5.5.2 拉普拉斯变换及其反变换......145 5.5.3 Z 变换及其反变换..................147 5.6 方程的解析解.....................................149 5.6.1 线性方程组的解析解.............149 5.6.2 非线性方程(组)的解析解......150 5.6.3 常微分方程(组)的解析解......152 5.7 小结 ....................................................154 5.8 习题 ....................................................154 第 6 章 MATLAB 程序设计...........................157 6.1 M 文件................................................157 6.1.1 局部变量与全局变量.............157 6.1.2 M 文件的编辑与运行............158 6.1.3 脚本文件................................159 6.1.4 函数文件................................160 6.1.5 函数调用................................161 6.2 MATLAB的程序控制结构................164 6.2.1 循环结构................................164 6.2.2 选择结构................................169 6.2.3 程序流的控制.........................173 6.3 数据的输入与输出.............................173 6.3.1 键盘输入语句(input)..............173 6.3.2 屏幕输出语句(disp)...............174 6.3.3 M 数据文件的存储/加载 (save / load).............................174 6.3.4 格式化文本文件的存储/ 读取(fprintf / fscanf)...............174 6.3.5 二进制数据文件的存储/ 读取(fwrite/ fread)..................174 6.3.6 数据文件行存储/读取 (fgetl / fgets)............................175 6.4 MATLAB 文件操作...........................175 6.5 面向对象编程.....................................177 6.5.1 面向对象程序设计的基本 方法........................................177 6.5.2 面向对象的程序设计实例.....179 6.6 MATLAB 程序优化...........................181 6.7 程序调试.............................................182 6.8 小结 ....................................................183 6.9 习题 ....................................................183 第 7 章 MATLAB 数据可视化.......................185 7.1 二维图形.............................................185 7.1.1 MATLAB 的图形窗口............186 7.1.2 基本二维图形绘制.................187 7.1.3 其他类型的二维图.................189 7.1.4 色彩和线型.............................191 7.1.5 坐标轴及标注.........................193 7.1.6 子图.........................................194 7.2 三维图形.............................................195 7.2.1 三维曲线图.............................196 7.2.2 三维曲面图.............................196 7.2.3 视角控制.................................200 7.2.4 其他图形函数.........................202 7.3 图像.....................................................205 7.3.1 图像的类别和显示.................205 7.3.2 图像的读写.............................207 7.4 函数绘图.............................................208 7.4.1 一元函数绘图.........................208 7.4.2 二元函数绘图.........................209 7.5 小结.....................................................212 7.6 习题.....................................................212 第 8 章 交互式仿真集成环境 SIMULINK............................................214 8.1 SIMULINK 简介................................214 8.1.1 SIMULINK 特点....................214 8.1.2 SIMULINK 的工作环境........215 8.1.3 SIMULINK 仿真基本步骤....216 8.2 模型的创建.........................................217 8.2.1 模型概念和文件操作.............217 8.2.2 模块操作................................218 8.2.3 信号线操作 ............................221 8.2.4 对模型的注释.........................223 8.2.5 常用的 Source 信源................223 8.2.6 常用的 Sink 信宿...................230 8.2.7 仿真的配置 ............................235 8.2.8 启动仿真................................239 8.3 SIMULINK 仿真实例........................239 8.4 小结 ....................................................245 8.5 习题 ....................................................246 附录 MATLAB 上机实验...............................247
### 回答1: MATLAB 是一种用于数值计算、数据分析和可视化的软件环境,在处理三维数据高程方面也提供了丰富的功能和工具。首先,可以使用 MATLAB 中的函数来读取和处理高程数据MATLAB 支持多种数据格式,包括常见的地理信息系统 (GIS) 数据格式,如 TIF、GRD、ASC 等。通过读取这些数据文件,可以将高程数据加载到 MATLAB 的工作空间中,方便后续处理。 在处理高程数据时,MATLAB 提供了一系列的函数和工具箱。例如,可以使用 `meshgrid` 函数来创建一个网格,用来表示三维空间中的坐标点。然后,可以使用 `surf` 函数将高程数据绘制为三维曲面。这样可以直观地显示出地形的起伏情况。 除了显示高程数据三维曲面,MATLAB 还提供了一系列的函数和工具,用于分析和处理三维高程数据。可以通过计算求取最大高程、最小高程、平均高程等统计信息。同时,还可以进行插值和网格化等操作,对高程数据进行进一步处理和分析。 此外,MATLAB 还支持对三维高程数据进行可视化和图像处理。可以使用各种绘图函数,如 `contour`、`imagesc` 等,将高程数据可视化为等高线图、热力图等形式。同时,还可以使用图像处理工具箱中的函数,对高程数据进行滤波、增强和修复等操作,以改善数据质量和可视化效果。 综上所述,MATLAB 在处理三维高程数据方面具备了丰富的功能和工具。通过 MATLAB,我们可以读取、处理、分析和可视化三维高程数据,从而更深入地了解地形变化和地理环境。同时,MATLAB 还支持与其他软件和工具的联动,方便在不同领域应用中的使用。 ### 回答2: MATLAB 是一种功能强大的数值计算和数据可视化软件,可以进行三维数据处理和分析。在处理高程数据方面,MATLAB提供了多种方法和函数来实现。 首先,可以使用MATLAB中的网格化函数将离散的三维数据点转化为网格状的高程表面。常用的函数有griddata和meshgrid。griddata函数可以根据输入的数据点生成具有一定分辨率的网格高程表面。而meshgrid函数可以根据给定的x和y坐标向量生成一个网格高程表面,用于显示和分析。 其次,MATLAB还提供了许多高程数据分析的函数。例如,可以使用contour函数绘制高程等值线图,用不同颜色表示不同高度的等高线。使用surfc和meshc函数可以绘制三维高程图,并通过不同的颜色、阴影和光照来表示高度差异。这些函数可以帮助我们更直观地观察和理解高程数据。 此外,MATLAB还提供了许多用于高程数据处理和分析的工具箱,如地理工具箱、映像处理工具箱等。这些工具箱提供了更丰富的功能和方法,可用于处理地理信息系统数据、处理图像数据和进行数学建模。 总而言之,MATLAB对于三维高程数据的处理和分析提供了丰富的函数和工具,能够帮助用户进行高效的数据处理、可视化和分析。无论是从事地理信息系统研究、数据分析还是科学计算,MATLAB都是一个非常有用的工具。 ### 回答3: MATLAB是一种功能强大的编程语言和数学计算软件。它提供了许多用于处理和分析多维数据的工具和函数。在MATLAB中,我们可以使用内置函数和工具箱来处理三维数据和高程数据。 对于处理三维数据MATLAB提供了许多函数和工具箱。我们可以使用3D图形函数来可视化三维数据,如plot3,mesh和surf等。这些函数可以在三维空间中绘制线条、曲面和网格等,以便更好地理解和分析数据。此外,还可以使用一系列的矩阵运算函数和统计函数来处理和分析三维数据。 对于处理高程数据MATLAB提供了一些特殊的函数和工具箱,如DEM和GIS工具箱。这些工具箱可以帮助我们读取和处理数字高程模型(DEM)数据,如地形和地表海拔等。我们可以使用这些工具来创建和修改DEM数据,计算地形指数(如坡度和坡向)以及进行可视化和分析。 此外,MATLAB还提供了一些用于数据插值和平滑的函数,如griddata和smoothn等。这些函数可以帮助我们在不规则的数据点之间进行插值和平滑,以便更好地展示和分析高程数据。 总之,MATLAB可以用来处理和分析三维数据和高程数据。我们可以使用内置的函数和工具箱来进行可视化、分析和修改数据,以便更好地理解和利用数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦芽糖加三勺

喜欢请关注,么么哒~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值