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制作企业邮箱的爆破脚本
Oct 05 Python
多版本Python共存的配置方法
May 22 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
解决Matplotlib图表不能在Pycharm中显示的问题
May 24 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
Python+opencv 实现图片文字的分割的方法示例
Jul 04 Python
python opencv将图片转为灰度图的方法示例
Jul 31 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
深入分析python 排序
Aug 24 Python
pandas中DataFrame检测重复值的实现
May 26 Python
教你使用Python pypinyin库实现汉字转拼音
May 27 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 Ajax中文乱码问题解决方法
2009/02/27 PHP
PHP下escape解码函数的实现方法
2010/08/08 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
重命名批处理python脚本
2013/04/05 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python使用tkinter实现简单计算器
2018/01/30 Python
对python调用RPC接口的实例详解
2019/01/03 Python
python如何获取apk的packagename和activity
2020/01/10 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
六五普法规划实施方案
2014/03/21 职场文书
《春天来了》教学反思
2014/04/07 职场文书
文明工地标语
2014/06/16 职场文书
给老婆道歉的话
2015/01/20 职场文书
经费申请报告
2015/05/15 职场文书
初中军训感言
2015/08/01 职场文书
ubuntu下常用apt命令介绍
2022/06/05 Servers