MATLAB中griddata和griddatan插值函数简单说明

前言

本文会用容易理解的话解释下griddata和griddatan的用法,不会追求严谨,目的是帮助需要用到这两个插值函数的尽快理解使用。

一、griddata函数是什么?

griddata可以插入二维或三维散点数据
严格上来说,griddata并不能算是插值,但是可以实现插值的功能。griddata有以下三种形式:
vq = griddata(x,y,v,xq,yq)
vq = griddata(x,y,z,v,xq,yq,zq)
vq = griddata(___,method)
griddata和interp2的区别是,interp2的插值数据必须是矩形域,要求xy规则排列。griddata中x,y,v是包含分散(非均匀)样本点和数据的向量。
举个例子,现在我在野外有5x5矩阵共25个采样点,分别覆盖了经度121-125度,纬度30-34.5度之间,采样点采集的是农作物的亩产量数据。现在我有一个经度122-124度,纬度32-34度之间的20x20的矩阵,矩阵代表每个点有多少亩这种农作物,现在需要求矩阵范围内的总产量。
下面两图分别代表采样点分布和绘制的亩产量等值线图

那么问题来了,25个采样点的数据实在太稀疏了,截取范围后,根本无法与20x20的矩阵点乘求总产量,那么这个时候就需要用到griddata函数了。
x,y可以看做是大的采样范围,v是每个点的属性,比如亩产量,某一污染物浓度。xq,yq是在这个采样范围内,需要截取的范围,比如我在一个省随即采了好多样本点,但我需要计算省内某块区域的值,这个时候就可以对全省采样数据插值,截取想要的区域,并可以调整xy间隔,构成新的矩阵。
当然,最关键的一点来了,如果这25个数据不构成5x5矩阵怎么办,比如我只有空间分布的21个数据?

上面说到interp2的插值数据必须是矩形域,gridata可以是分散(非均匀)样本点,所以依然适用这种情况。
下面的代码是用原始经纬度、亩产量是用矩阵表示的。当原始数据不是矩形域时,可以采用Excel表的形式输入MATLAB里面进行运算。

x=[ 34.2,34,34,34,34;33,33.2,33,33,33;32,32.7,32.5,32.6,32;31.5,31,31,31,31;30,30,30,30,30];
y=[ 121,122,123,124,125;121,122.1,123,124,125;121.3,122,123,124,125;121,122,123,124,125;121.1,122.3,123.6,124,125];
z=[ 1,2,5,3,4;4,2,3,5,6;7,5,3,6,4;4,2,8,6,4;7,4,8,6,5];
%为了便于理解,将原始数据详细写了出来
contourf(y,x,z)
figure()
xrange=34:-0.1:32;
yrange=122:0.1:124;
[Y,X] = meshgrid(yrange,xrange);%xrange、yrange可以看做是截取的范围,插值并且将其改为20*20的矩阵
M =griddata(x,y,z,X,Y);
imagesc(M)%20*20新的矩阵

二、gridatan使用

gridatan和gridata用法类似,不同的还是,gridatan可以实现更高维度的插值。
比如我选择一个湖泊,在湖泊选了几十个不同位置采样点,每一个采样点又根据水深采了不同深度的水样,计算营养盐含量。
采样点x,y,z实际上分布在三维空间中,且不均匀分布,加上营养盐含量就成了四维分散数据。这个时候想看某一经度的截面营养盐分布,gridatan就可以帮助我们实现对整个湖泊营养盐的插值,实现这一目的。

MATLAB中griddata和griddatan插值函数简单说明相关推荐

  1. matlab中矩阵的表示与简单操作

    matlab中矩阵的表示与简单操作 原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示 在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在"[ ]"内: b.矩阵的 ...

  2. Matlab中griddata函数拟合三维散点

    griddata可以插入二维或三维散点数据 griddata有以下三种形式: ①vq = griddata(x,y,v,xq,yq) ②vq = griddata(x,y,z,v,xq,yq,zq) ...

  3. matlab函数grid,matlab中griddata函数怎么用

    dbb627的回答: 知道一系列点的坐标如下(1.486,3.059,0.1);(2.121,4.041,0.1);(2.570,3.959,0.1);(3.439,4.396,0.1);(4.505 ...

  4. matlab中data函数,matlab中griddata函数应用示例

    知道一系列点的坐标如下(1.486,3.059,0.1);(2.121,4.041,0.1);(2.570,3.959,0.1);(3.439,4.396,0.1);(4.505,3.012,0.1) ...

  5. matlab中griddata函数,[转载]matlab中griddata函数应用示例

    知道一系列点的坐标如下(1.486,3.059,0.1);(2.121,4.041,0.1);(2.570,3.959,0.1);(3.439,4.396,0.1);(4.505,3.012,0.1) ...

  6. Matlab中用GUI做计算器,怎样用MATLAB中的GUI做一个简单计算器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function varargout = jisuanqi(varargin) gui_Singleton = 1; gui_State = struct ...

  7. matlab中结果为nan,这么简单的程序,为什么结果为NaN呢?

    b-s公式倒是明白,但是没用来计算过 credit risk,楼主的程序我给帮忙改了改,不知道是不是楼主的意思了 function[Va,SigmaVa]=CalV(E,SigmaE,D,r,T) % ...

  8. MATLAB中计算器的设立,怎样用MATLAB中的GUI做一个简单计算器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function varargout = jisuanqi(varargin) gui_Singleton = 1; gui_State = struct ...

  9. matlab对遥感影像投影转换,在matlab中实现遥感影像和shp文件的结合显示

    clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); % ...

最新文章

  1. 【笔记】js Function类型 内部方法callee
  2. catia圆柱转化为圆台_浅析actran气动噪声仿真技术,以圆柱绕流气动噪声仿真为例...
  3. 【Leetcode】二分法左侧边界右侧边界模板
  4. electron android编译,Tiny4412_Android编译步骤
  5. 【重磅】ArcGIS 10.8手把手经典图文安装教程(附安装包全套装下载,亲测可用)
  6. Visual Studio 安装失败
  7. 阿里云RDB-MySQL5.7数据库:Specified key was too long; max key length is 767 bytes;
  8. bootstrap 和 jqueryui
  9. 如何去除list中的重复元素
  10. 矩阵专业词汇英文对照
  11. ps计算机二级自学教程,计算机二级考试《Photoshop图像处理与制作》
  12. python绘制隐含波动率曲面_如何用python计算隐含波动率
  13. html5中display flex,display:flex属性
  14. Latex在footnote或在bib中插入链接时出现波浪号~的解决方案
  15. 阿里云Centos7搭建MySql数据库
  16. 入驻快手小店需要什么条件?快手小店如何开通?
  17. oracle中活着的写法,oraclekk
  18. 图片怎么转jpg?教你两个超简单的图片转jpg格式的方法
  19. 安卓AsyncTask
  20. php查询更新数据库数据类型,更新Update

热门文章

  1. 用c语言实现交并差算法,C语言实现集合的交,并,差
  2. [转]关于内存地址的个人理解和操作原理
  3. C++之sort函数
  4. Altium designer入门教程:新建一个项目
  5. 奥地利采用漱口检测方法对抗新冠病毒
  6. Activiti工作流-进阶
  7. 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事(转)
  8. 阿伏法机器人_智慧树_森工机器人技术_搜题公众号
  9. kali linux 爆破工具实验
  10. android设置src大小不改变,ImageButton设置src图片大小