matlab插值计算
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')
- 多个点(数组)
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插值计算相关推荐
- 马赫数和速度相互转换函数(matlab插值计算)
function [Mach] = v2Mach(v,h) % 速度与马赫数转换函数,插值计算 % 输入:速度v 单位 m/s ,高度h 单位m 输出:Mach H=[0 100 500 1000 1 ...
- matlab科学计算的应用,精通MATLAB科学计算与数据统计应用 高清版pdf[12MB]
在各行各业的工程实践中,有大量的科学计算工作需要完成.传统的计算方式一般需要较长的周期,相比之下开发效率极高的MATLAB是一个更好的选择.在MATLAB中,编程细节被简化,繁琐的实现过程也被略去,用 ...
- 利用MatLab对数据进行插值计算(分段插值和三次样条插值)
利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...
- 编写matlab语句计算试题,MATLAB测验考试题
<MATLAB测验考试题>由会员分享,可在线阅读,更多相关<MATLAB测验考试题(12页珍藏版)>请在装配图网上搜索. 1.一.填空题1.在MATLAB中,清除所有变量的命令 ...
- matlab多项式计算题目,MATLAB数据分析与多项式计算-习题答案
<MATLAB数据分析与多项式计算-习题答案>由会员分享,可在线阅读,更多相关<MATLAB数据分析与多项式计算-习题答案(4页珍藏版)>请在人人文库网上搜索. 1.第6章 M ...
- MATLAB科学计算机lnx代码,[2018年最新整理]Matlab科学计算.ppt
[2018年最新整理]Matlab科学计算 Matlab与科学计算 计算机学院 刘咏梅 Email:liuyongmei@hrbeu.edu.cn 第二章 MATLAB数值计算基础 Introduct ...
- [Matlab科学计算] 频谱分析和FFT算法总结
频谱分析是一种非常重要的信号处理方法,在机械设备故障诊断.振动系统分析.电力系统.无线电通信.信息图像处理和自动控制等学科中都有重要应用.频谱分析的核心是1965年Cooely-Tukey发表的快速傅 ...
- matlab gausspdf,《精通MATLAB科学计算》(王正林 编著).pdf
<精通MATLAB科学计算>(王正林编著).pdf<精通MATLAB科学计算>(王正林编著).pdf [General Information] 书名=精通MATLAB科学计算 ...
- MATLAB插值:柏林噪声插值
这是MATLAB插值拟合系列的第四期,这里附上前几期的链接: 第三期:MATLAB数值拟合:最小二乘多项式拟合 第二期:matlab插值:拉格朗日插值 第一期:[数值分析拟合]Matlab三次样条插值 ...
- matlab插值比较-griddata/interp2
一.matlab插值比较-griddata/interp2 最近在使用matlab插值,发现采用griddata计算速度太慢,正好是网格数据就将计算结果与interp2开展了对比,发现速度差别特别大. ...
最新文章
- Myeclipse 2015 stable 2.0 完美破解方法
- mybatis-plus 错误java.lang.NoClassDefFoundError: org
- 单核工作法16:循序渐进(下)
- 计算机系统怎么算页面大小,电脑网页的设计尺寸是多少
- Kubernetes 的自动伸缩你用对了吗?
- Python中赋值,深拷贝和浅拷贝
- IBM将发布以固态硬盘为基础的全企业系统
- Ubuntu环境搭建一:安装tftp服务器程序
- 如何做相册_我是如何对2000张照片进行批量套版的
- 告别遥控器,BBC 试验用大脑调台
- c# Hello World
- 乌鲁木齐高新区大数据产业首个惠农项目落地
- 华为手机升级回退_华为手机版本回退 - 卡饭网
- 计算机win10搜不到wifi,Windows10笔记本找不到无线网络如何处理
- 如何卸载电脑中linux系统软件,Linux下如何卸载软件
- Linux下安装与配置aMule电驴
- jQuery播放音乐
- 医疗软件还能怎么做,才能更进一步。
- [转]IDA + GDBServer实现iPhone程序远程调试
- 文件包含漏洞(LFI、RFI)(require()、include()函数)
热门文章
- python程序设计基础课后习题答案(电子版,可复制)
- 第一次天池大数据竞赛圆满落下帷幕
- 远程软件TeamViewer如何导出选项注册表文件?
- 电厂运维的cis数据_浅析电力企业信息系统运维综合监管平台设计-
- mysql下载与安装 win10 64位
- lamp一键安装包不安装mysql_LAMP一键安装包-CentOS 5/6下自动编译安装Apache、MySQL、PHP...
- editplus文本编辑器添加语法高亮
- 看不见的,就是不存在么?《平面国》读后感
- csr蓝牙适配 linux,新款4.0蓝牙适配器 迷你4.0蓝牙适配器 Bluetooth CSR 4.0 Dongle
- 软件工程:数据流图,数据字典的画法,以及如何转化为软件结构图