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中反射用法实例
Mar 27 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
python实现日常记账本小程序
Mar 10 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
在python下读取并展示raw格式的图片实例
Jan 24 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
解决python明明pip安装成功却找不到包的问题
Aug 28 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
python 求定积分和不定积分示例
Nov 20 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 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的字符串用法小结
2010/06/08 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
js动态切换图片的方法
2015/01/20 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
深入解析Python中的__builtins__内建对象
2016/06/21 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
上海方立数码笔试题
2013/10/18 面试题
企业军训感想
2014/02/07 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
质量保证书
2015/01/17 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android