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 相关文章推荐
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
实例讲解python中的序列化知识点
Oct 08 Python
Django csrf 验证问题的实现
Oct 09 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
python实现在函数中修改变量值的方法
Jul 16 Python
Django 自定义分页器的实现代码
Nov 24 Python
使用 Supervisor 监控 Python3 进程方式
Dec 05 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
Python包资源下载路径报404解决方案
Nov 05 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
PHP开发负载均衡指南
2010/07/17 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP编程风格规范分享
2014/01/15 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
决策树的python实现方法
2014/11/18 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
Python Pillow Image Invert
2019/01/22 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
python实现xml转json文件的示例代码
2020/12/30 Python
英文自荐信格式
2013/11/28 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
销售员岗位职责范本
2014/02/03 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书