0, 说明

关于插值,官网有个小总结,可以直接去参考(从1维到多维),下面是我举的例子。

1, 一维插值interp1(x,y,X1,method)

x = linspace(0,10,11)
y = sin(x)
plot(x,y,'-ro')


插值方法有如下:
method=‘nearest’,‘linear’,‘spline’,‘pchip’,‘cubic’
比如使用三次条样插值spline,则

x = linspace(0,10,11)
y = sin(x)
plot(x,y,'-ro')xnew = linspace(0,10,101)
f = interp1(x,y,xnew,'spline')
plot(xnew,f)

2,高维插值

2.1 二维插值

使用interp2(X,Y,Z,X1,Y1,method)函数, method包含:nearest,‘linear’,‘spline’,‘cubic’

x = linspace(-5,5,11);
y = linspace(-5,5,11);
[X,Y] = meshgrid(x,y);
Z = 3.*sin(X.^2+Y.^2);xi = linspace(-5,5,100);
yi = linspace(-5,5,100);
[XI,YI]=meshgrid(xi,yi);
ZI = interp2(X,Y,Z,XI,YI,'cubic');surf(XI,YI,ZI),view(-25,25)

2.2 三维插值

参考官网,用法如下

Vq = interp3(X,Y,Z,V,Xq,Yq,Zq)
Vq = interp3(V,Xq,Yq,Zq)

但这个方法有时候不是很实用,主要是X,Y,Z都要弄成网格的形式,因此我一般大于等于三维的时候就直接采用interpn了,见下一节。

2.3 多维插值

大于等于三维一般采用interpn,可以参考官网用法,

Vq = interpn(X1,X2,...,Xn,V,Xq1,Xq2,...,Xqn)

这里x1,x2,...xn,以及xq1,xq2,...xqn都是一维的(注意是单调函数),所以比Interp3简单很多。
方法有如下method: ‘linear’, ‘nearest’, ‘pchip’,‘cubic’, ‘makima’, or ‘spline’. The default method is ‘linear’.
举例
1)插值一个点
现在有一个高维数据(4维),横坐标是经度,纵坐标是维度,高是海拔,V的值是在这三维中的水汽含量。我现在有了V的数据,这个数据是(37,10,10)的大小,表示高有37层,经纬度分别都是10的大小(因此经纬度构成100的数据网格),现在要计算高500m,经纬度分别为(80,32)的点的值(插值)

data_path = 'C:\Users\Lenovo\Desktop\recent work\matlab_interp\'
el = importdata([data_path,'el_sort.txt']);  %海拔
lat = importdata([data_path,'lat_sort.txt']);  %纬度
lon = importdata([data_path,'lon_sort.txt']);   %经度
V = readNPY([data_path,'s_h_reverse.npy']);    %数据
Vq = interpn(el,lon,lat,V,500,80,32,'spline')    %插值


2)插值两个点
上面插值只在一个点(500,80,30)上进行,但有时我们要插值的是很多个点构成的数组。

%在(500,80.03,32.3)和(900,81.2,31.4)两个点插值
Vq = interpn(el,lon,lat,V,[500 900],[80.03 81.2],[32.3 31.4],'spline')
  1. 多个点(数组)
Vq = interpn(el,lon,lat,squeeze(s_h_full(i,:,:,:)),coor(:,1),coor(:,2),coor(:,3),'spline')

这里coor表示坐标,有海拔,经,纬度,都是一列。
完整代码

data_path = 'C:\Users\Lenovo\Desktop\recent work\matlab_interp\';
el = importdata([data_path,'el_sort.txt']);  %海拔
lat = importdata([data_path,'lat_sort.txt']);  %纬度
lon = importdata([data_path,'lon_sort.txt']);   %经度
V = readNPY([data_path,'s_h_full_inv.npy']);    %数据
coor = readNPY([data_path,'coor_in_new.npy']);
levell = 50;
hours = 720;
s_h_interp = [];
for i = 1:hoursVq = interpn(el,lon,lat,squeeze(V(i,:,:,:)),coor(:,1),coor(:,2),coor(:,3),'spline');s_h_interp = horzcat(s_h_interp,Vq);
end
writeNPY(s_h_interp,[data_path,'s_h_interp_matlab_161.npy'])

matlab插值计算相关推荐

  1. 马赫数和速度相互转换函数(matlab插值计算)

    function [Mach] = v2Mach(v,h) % 速度与马赫数转换函数,插值计算 % 输入:速度v 单位 m/s ,高度h 单位m 输出:Mach H=[0 100 500 1000 1 ...

  2. matlab科学计算的应用,精通MATLAB科学计算与数据统计应用 高清版pdf[12MB]

    在各行各业的工程实践中,有大量的科学计算工作需要完成.传统的计算方式一般需要较长的周期,相比之下开发效率极高的MATLAB是一个更好的选择.在MATLAB中,编程细节被简化,繁琐的实现过程也被略去,用 ...

  3. 利用MatLab对数据进行插值计算(分段插值和三次样条插值)

    利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...

  4. 编写matlab语句计算试题,MATLAB测验考试题

    <MATLAB测验考试题>由会员分享,可在线阅读,更多相关<MATLAB测验考试题(12页珍藏版)>请在装配图网上搜索. 1.一.填空题1.在MATLAB中,清除所有变量的命令 ...

  5. matlab多项式计算题目,MATLAB数据分析与多项式计算-习题答案

    <MATLAB数据分析与多项式计算-习题答案>由会员分享,可在线阅读,更多相关<MATLAB数据分析与多项式计算-习题答案(4页珍藏版)>请在人人文库网上搜索. 1.第6章 M ...

  6. MATLAB科学计算机lnx代码,[2018年最新整理]Matlab科学计算.ppt

    [2018年最新整理]Matlab科学计算 Matlab与科学计算 计算机学院 刘咏梅 Email:liuyongmei@hrbeu.edu.cn 第二章 MATLAB数值计算基础 Introduct ...

  7. [Matlab科学计算] 频谱分析和FFT算法总结

    频谱分析是一种非常重要的信号处理方法,在机械设备故障诊断.振动系统分析.电力系统.无线电通信.信息图像处理和自动控制等学科中都有重要应用.频谱分析的核心是1965年Cooely-Tukey发表的快速傅 ...

  8. matlab gausspdf,《精通MATLAB科学计算》(王正林 编著).pdf

    <精通MATLAB科学计算>(王正林编著).pdf<精通MATLAB科学计算>(王正林编著).pdf [General Information] 书名=精通MATLAB科学计算 ...

  9. MATLAB插值:柏林噪声插值

    这是MATLAB插值拟合系列的第四期,这里附上前几期的链接: 第三期:MATLAB数值拟合:最小二乘多项式拟合 第二期:matlab插值:拉格朗日插值 第一期:[数值分析拟合]Matlab三次样条插值 ...

  10. matlab插值比较-griddata/interp2

    一.matlab插值比较-griddata/interp2 最近在使用matlab插值,发现采用griddata计算速度太慢,正好是网格数据就将计算结果与interp2开展了对比,发现速度差别特别大. ...

最新文章

  1. Myeclipse 2015 stable 2.0 完美破解方法
  2. mybatis-plus 错误java.lang.NoClassDefFoundError: org
  3. 单核工作法16:循序渐进(下)
  4. 计算机系统怎么算页面大小,电脑网页的设计尺寸是多少
  5. Kubernetes 的自动伸缩你用对了吗?
  6. Python中赋值,深拷贝和浅拷贝
  7. IBM将发布以固态硬盘为基础的全企业系统
  8. Ubuntu环境搭建一:安装tftp服务器程序
  9. 如何做相册_我是如何对2000张照片进行批量套版的
  10. 告别遥控器,BBC 试验用大脑调台
  11. c# Hello World
  12. 乌鲁木齐高新区大数据产业首个惠农项目落地
  13. 华为手机升级回退_华为手机版本回退 - 卡饭网
  14. 计算机win10搜不到wifi,Windows10笔记本找不到无线网络如何处理
  15. 如何卸载电脑中linux系统软件,Linux下如何卸载软件
  16. Linux下安装与配置aMule电驴
  17. jQuery播放音乐
  18. 医疗软件还能怎么做,才能更进一步。
  19. [转]IDA + GDBServer实现iPhone程序远程调试
  20. 文件包含漏洞(LFI、RFI)(require()、include()函数)

热门文章

  1. python程序设计基础课后习题答案(电子版,可复制)
  2. 第一次天池大数据竞赛圆满落下帷幕
  3. 远程软件TeamViewer如何导出选项注册表文件?
  4. 电厂运维的cis数据_浅析电力企业信息系统运维综合监管平台设计-
  5. mysql下载与安装 win10 64位
  6. lamp一键安装包不安装mysql_LAMP一键安装包-CentOS 5/6下自动编译安装Apache、MySQL、PHP...
  7. editplus文本编辑器添加语法高亮
  8. 看不见的,就是不存在么?《平面国》读后感
  9. csr蓝牙适配 linux,新款4.0蓝牙适配器 迷你4.0蓝牙适配器 Bluetooth CSR 4.0 Dongle
  10. 软件工程:数据流图,数据字典的画法,以及如何转化为软件结构图