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 17 Python
python中urllib模块用法实例详解
Nov 19 Python
Python脚本实现虾米网签到功能
Apr 12 Python
Python中死锁的形成示例及死锁情况的防止
Jun 14 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 Python
python实现根据文件格式分类
Oct 31 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
python学习笔记之多进程
Aug 06 Python
python 爬取天气网卫星图片
Jun 07 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
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
js select常用操作控制代码
2010/03/16 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
node跨域请求方法小结
2017/08/25 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
详解python的数字类型变量与其方法
2016/11/20 Python
Python中super函数用法实例分析
2019/03/18 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
pytest中文文档之编写断言
2019/09/12 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
俄罗斯儿童和青少年服装、鞋子及配件的在线商店:Orby
2020/02/20 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
手机业务员岗位职责
2013/12/13 职场文书
工作保证书范文
2014/04/29 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书