matlab中二维插值函数interp2的使用详解


Posted in Python onApril 22, 2020

下面是一段产生log-normal分布的代码,以此进行说明。

clear all;
clc;
for t=1:100
 Traffic(t) =curve(t);
end
MaxTraffic = max(Traffic);
w = 0.2;
Wmax = 2*pi*w/3000;
x=[0:10:300];
y=[0:10:300];
Nx=length(x);
Ny=length(y);
Sigma = 0.53;
t = 0;
M = 10*curve(t)/MaxTraffic;
sum = 0;
for i=1:Nx
 forj=1:Ny
  Mu = log(M)-0.5*Sigma^2;
  Rho(i,j) = RhoFromCoordination(x(i),y(j),Wmax,Sigma,Mu);
  Lognrnd(i,j) = round(exp(Sigma*Rho(i,j)+Mu));
  sum = Lognrnd(i,j)+sum;
 end
end
sum
[xi,yi]=meshgrid(0:2:300,0:2:300);
z1=interp2(x,y,Lognrnd,xi,yi,'spline');%三次样条插值
surf(xi,yi,z1)

(1)首先理解meshgrid的原理和用法。简单地说,就是产生Oxy平面的网格坐标。

在进行3-D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x,y)。例如,要在“3<=x<=5,6<=y<=9,z不限制区间”这个区域内绘制一个3-D图形,如果只需要整数坐标为采样点的话。

我们可能需要下面这样一个坐标构成的矩阵:

(3,9),(4,9),(5,9);

(3,8),(4,8),(5,8);

(3,7),(4,7),(5,7);

(3,6),(4,6),(5,6);

在matlab中我们可以这样描述这个坐标矩阵

把各个点的x坐标独立出来,得:

3,4,5;

3,4,5;

3,4,5;

3,4,5;

再把各个点的y坐标也独立出来:

9,9,9;

8,8,8;

7,7,7;

6,6,6;

这样对应的x、y结合,便表示了上面的坐标矩阵。meshgrid就是产生这样两个矩阵,来简化我们的操作。然后根据(x,y)计算获得z,并绘制出三维图形。

(2)理解interp2的参数含义和用法,如ZI= interp2(X,Y,Z,XI,YI,'spline')

A、返回矩阵ZI,ZI的元素包含对应于参量XI与YI(可以是向量、或同型矩阵)的元素, 即ZI(i,j)←(XI(i),YI(j))

B、用户可以输入行向量和列向量XI与YI。

C、若XI与YI中有在X与Y范围之外的点,则相应地返回nan(Not a Number)。

D、用指定的算法method计算二维插值:

'linear' :双线性插值算法(缺省算法);
'nearest' :最临近插值;
'spline' :三次样条插值;
'cubic' :双三次插值。

E、如以下的运用:

[xi,yi] = meshgrid(0:2:300,0:2:300);
ZI = interp2(x,y,Lognrnd,xi,yi,'spline');%三次样条插值
surf(xi,yi,ZI)%这里已经不再是(x,y),而是(xi,yi)。

(3)上述的代码效果

插值前:

matlab中二维插值函数interp2的使用详解

插值后:

matlab中二维插值函数interp2的使用详解

补充知识:Matlab 二维插值,求面积

matlab中二维插值函数interp2的使用详解

matlab中二维插值函数interp2的使用详解

先将表中数据复制到EXCEL中,再导入到MATLAB中

这里只做了前两问,第三位实在不会,等学会了再补

第二问本来想着用差分求出来导数,再用面积公式,结果发现连z=f(x,y)我都不会表示。。。。。。

直接用的海伦公式,每一个方块内分成两个三角形,分开求面积

x=0:100:1200;
y=0:100:1000;
[x y]=meshgrid(x,y);
z=mydata1;
x1=0:10:1200;
y1=0:10:1000;
[x1 y1]=meshgrid(x1,y1);
z1=interp2(x,y,z,x1,y1)
surf(x1,y1,z1)
shading flat
square=0;
[r c]=size(z1)
for n=1:c-1
 for m=1:r-1
  a=x1(m,n+1)-x1(m,n);
  b=y1(m+1,n)-y1(m,n);
  temp=z1(m+1,n+1)-z1(m,n);
  c=sqrt(a*a+b*b+temp*temp);
  temp=z1(m,n+1)-z1(m,n);
  a1=sqrt(temp*temp+a*a);
  temp=z1(m+1,n+1)-z1(m,n+1);
  b1=sqrt(temp*temp+b*b);
  p=(a1+b1+c)/2;
  square=square+sqrt(p*(p-a1)*(p-b1)*(p-c));
  temp=z1(m+1,n)-z1(m,n);
  b2=sqrt(b*b+temp*temp);
  temp=z1(m+1,n+1)-z1(m+1,n);
  a2=sqrt(temp*temp+a*a);
  p=(a2+b2+c)/2;
  square=square+sqrt(p*(p-a2)*(p-b2)*(p-c));
 end
end
square

square =

1.2210e+06

matlab中二维插值函数interp2的使用详解

以上这篇matlab中二维插值函数interp2的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现bucket排序算法实例分析
May 04 Python
python绘图方法实例入门
May 19 Python
Zabbix实现微信报警功能
Oct 09 Python
微信 用脚本查看是否被微信好友删除
Oct 28 Python
Python创建二维数组实例(关于list的一个小坑)
Nov 07 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
Python 实现顺序高斯消元法示例
Dec 09 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
Django 解决由save方法引发的错误
May 21 Python
关于Python使用turtle库画任意图的问题
Apr 01 Python
python 一维二维插值实例
Apr 22 #Python
Numpy一维线性插值函数的用法
Apr 22 #Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 #Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 #Python
Jupyter Notebook折叠输出的内容实例
Apr 22 #Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 #Python
django使用JWT保存用户登录信息
Apr 22 #Python
You might like
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
python中的tcp示例详解
2018/12/09 Python
python模块常用用法实例详解
2019/10/17 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
世界经理人咨询有限公司面试
2014/09/23 面试题
如何利用cmp命令比较文件
2013/09/23 面试题
人力资源管理专业应届生求职信
2013/09/28 职场文书
物流管理专业大学生自荐信
2013/10/04 职场文书
区三好学生主要事迹
2014/01/30 职场文书
感恩教育月活动总结
2014/07/07 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
车间质检员岗位职责
2015/04/08 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
instantclient客户端 连接oracle数据库
2022/04/26 Oracle
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电