求一段matlab程序,把序列中大于阀值的点去掉,并用线性插值得到的点替代

求一段matlab程序,把序列中大于阀值的点去掉,并用线性插值得到的点替代,第1张

假设序列存在变量a中

xa=ones(size(a));

xa=cumsum(xa);

b=a(a<=T);

xb=xa(a<=T);

c=interp1(xb,b,xa,'linear','extrap');

c就是要求的序列

提问前建议先自行百度

关键词

“matlab”+

“双线性插值

首先需要了解什么是双线性插值:

如果选择一个坐标系统使得

的四个已知点坐标分别为

(0,

0)、(0,

1)、(1,

0)

(1,

1),那么插值公式就可以化简为

f(x,y)=f(0,0)(1-x)(1-y)+f(0,1)(1-x)y+f(1,1)xy+f(1,0)x(1-y)

相应进行matlab程序编写即可

在最后加一句代码:

axis([0 1 -inf inf])

其实都已经画完了,只是你的x轴和y轴在最后作图的时候被限定了范围,所以看起来像没有画上去。加了上面代码之后可以得出如下图:

#include<stdioh>

#include<mathh>

double Lagrange1(double x, double y, double xx) //拉格郎日插值

{

int i,j;

double a,yy=0000;

a=new double[6];

for(i=0;i< 6;i++)

{

a[i]=y[i];

for(j=0;j< 6;j++)

if(j!=i)

a[i]=(xx-x[j])/(x[i]-x[j]);

yy+=a[i];

}

delete a;

return yy;

}

double Lagrange2(double x, double y, double input) //分段线性插值

{

double output;

int i;

for (i=0;i<5;i++)

{

if (x[i] <= input && x[i+1] >= input)

{

output=y[i] +(y[i+1]-y[i])(input-x[i])/(x[i+1]-x[i]);

break;

}

}

return output;

}

double Lagrange3(double x,double y,double u) //分段二次插值

{

int i,k=0;

double v;

for(i=0;i<6;i++)

{

if(u<x[1])

{

k=0;

v=y[k](u-x[k+1])(u-x[k+2])/((x[k]-x[k+1])(x[k]-x[k+2]))+y[k+1](u-x[k])(u-x[k+2])/((x[k+1]-x[k])(x[k+1]-x[k+2]))+y[k+2](u-x[k])(u-x[k+1])/((x[k+2]-x[k])(x[k+2]-x[k+1]));

}

if((x[i]<u&&u<=x[i+1])&&(fabs(u-x[i])<=fabs(u-x[i+1])))

{

k=i-1;

v=y[k](u-x[k+1])(u-x[k+2])/((x[k]-x[k+1])(x[k]-x[k+2]))+y[k+1](u-x[k])(u-x[k+2])/((x[k+1]-x[k])(x[k+1]-x[k+2]))+y[k+2](u-x[k])(u-x[k+1])/((x[k+2]-x[k])(x[k+2]-x[k+1]));

}

if ((x[i]<u&&u<=x[i+1])&&fabs(u-x[i])>fabs(u-x[i+1]))

{

k=i;

v=y[k](u-x[k+1])(u-x[k+2])/((x[k]-x[k+1])(x[k]-x[k+2]))+y[k+1](u-x[k])(u-x[k+2])/((x[k+1]-x[k])(x[k+1]-x[k+2]))+y[k+2](u-x[k])(u-x[k+1])/((x[k+2]-x[k])(x[k+2]-x[k+1]));

}

if(u>x[4])

{

k=3;

v=y[k](u-x[k+1])(u-x[k+2])/((x[k]-x[k+1])(x[k]-x[k+2]))+y[k+1](u-x[k])(u-x[k+2])/((x[k+1]-x[k])(x[k+1]-x[k+2]))+y[k+2](u-x[k])(u-x[k+1])/((x[k+2]-x[k])(x[k+2]-x[k+1]));

}

}

return v;

}

void main()

{

double x[6] = {00, 01, 0195, 03, 0401, 05},y[6] = {039894,039695,039142,038138,036812,035206};

double u;

scanf("%lf",&u);

printf("%f\n",Lagrange1(x,y,u)); //拉格郎日插值

printf("%f\n",Lagrange2(x,y,u)); //分段线性插值

printf("%f\n",Lagrange3(x,y,u)); //分段二次插值

}

土地定级的程序与方法

土地分等定级是根据城镇土地的经济和自然两方面的属性及其在城镇社会经济中的地位和作用,综合评定土地质量,划分城镇土地等级的过程。那么土地是怎么分等定级的呢,一起来看看!

(一)土地定级程序

1、编写土地定级任务书,做好组织上、物质上的准备;2、收集资料

3、资料整理及分值表的编制 ;4、权重确定及因素选择;5、土地定级单元的划分

6、土地级别的确定;7、土地收益、地价测定;8、面积量算及土地级别图的编制

9、土地定级报告及成果验收归档

(二)城镇土地定级资料收集与调查

包括繁华程度资料、交通条件资料、基本设施状况资料、环境条件和自然条件资料、社会历史及人口资料、土地利用效益资料、产业聚集和城镇规划资料以及其他资料的收集与调查。

(三)因素分值计算

城镇土地定级一般采用多因素综合评价法进行。在评级过程中,往往涉及面状因素和点、线状因素,二者在对土地质量影响的方式以及赋分处理上略有不同。

掌握几个概念:功能分(f)、作用分(e)、因素分值(f)、单元总分值(s)

1、因素分值计算原则:5个原则

2、因素分值计算方法

(1)因素对土地质量影响方式及类型

根据各因素在城镇中空间分布形态及其影响土地质量的方式,分为两类:点、线状分布形式土地因素和面状分布形式土地因素。

点、线状因素的两个特征:所依附客体多为点、线状形态分布;有外溢影响面状因素的两个特征:所依附客体分布面积较大,基本无外溢影响

(2)面状土地因素分值计算方法

ei=100(xi-xmin)/(xman-xmix)

(3)点、线状土地因素分值计算方法

求相对功能分——计算其作用或平均影响范围——计算各相对因素距离上的因素作用分

一般常用的计算模型有线性和非线性两种:

线性模型表达公式:e=f(1-r)

非线性模型表达公式:e=f(1-r)

3、商服繁华影响度的作用分值计算

(1)商业服务繁华影响度指标分析

商业服务可划分为4级,商业服务繁华度随距离增加而递减,遵从指数衰减规律。

(2)繁华影响度分值的计算与叠加

4、道路通达度作用分值计算

(1)道路通达度指标分析 (2)道路通达度的分值计算

5、公交便捷度分值计算

(1)公交便捷度分析 (2)公交便捷度的分值计算和修订

6、基础设施完善度作用分值计算

7、环境质量优劣度作用分值的计算

(1)衡量环境质量指标的三种类型 (2)环境质量优劣度分值计算

8、公用设施完备度、对外交通便利度、文体设施影响度作用分值计算

9、绿地覆盖度、人口密度的作用分值计算

10、产业聚集影响度的作用分值计算

(四)单元划分及取样

1、土地定级单元的概念 2、单元划分的原则 3、确定单元界限的原则

4、单元大小的`要求

5、单元的划分方法

包括叠加法、主导因素判定法、网格法(固定、动态)、均质地域法

6、单元内指标取样

常用方法有以点代面、线性内插、面积加权

(五)单元总分值计算与土地级别划分

1、城镇土地质量变化规律(土地质量的变化规律同城镇的复杂程度有关)

2、土地质量与土地级别

3、单元总分值计算(采用因素分值加权求和法)

4、土地级别划分

初步划分土地级别的方法有数轴法、剖面图法、多元统计的聚类——判别法、总分频率曲线统计判断法

(六)土地收益测算与级别确定

1、土地收益测算的原则

(1)土地收益测算的原则

(2)利用企业利润数据进行土地收益测算

(3)利用宗地地价测算土地级别收益

2、土地级别的最后确定

采用多因素分值加权求和计算总分确定的是初步的土地级别,还需对土地收益测算进行验证,然后将土地的级别进行修定和归并,最后确定土地级别。

(七)考虑规划条件的城镇土地定级处理方法

分为规划模拟定级和规划修正定级两种。前者又分为规划模拟综合定级和规划模拟分类定级。都采用多因素综合评价法进行。

1、考虑规划条件的城镇土地定级资料调查

2、规划模拟定级

与针对现状的土地定级的主要区别在于对象不同。

3、规划修正定级

(1)规划修正定级的基本要求

(2)规划因素影响的量化方法

点、线状因素的作用分析涉及现状功能分、规划功能分、增加功能分和修正功能分;面状因素的影响涉及现状作用分、规划作用分、增加作用分和修正作用分;

(3)规划折扣系数的确定

;

网上有很多介绍插值算法的,但感觉收获都不大

介绍三种图像插值算法:最近邻内插,双线性内插,双三次内插(双立方内插)

三次插值即用三阶多项式拟合原函数(也应该有其他用途)。假设三次拟合函数为

在matlab中,图像被定义为一个三维向量,若不考虑图像的通道数,可以将图像看作一个二维矩阵处理。matlab图像矩阵中坐标值映射到二维坐标系中,每一个像素块对应的是一个点,但实际的像素块是有一定尺寸的。

在进行双线性插值和双三次插值时,需要用坐标值拟合函数,为了简化计算,总是选取 作为局部坐标系原点,其中 为待插值坐标。

当出现这些情况时,补充这些像素的灰度值为图像内最相邻像素块的灰度值。

进行坐标变换后,选取与内插点 欧式距离最近的像素值进行插值。在程序中,使用将 按照四舍五入的舍入方式选取最近邻的像素块。

双线性内插是线性内插的二维实现,在x维度先进行线性插值,再由得到的值对y维度进行插值。在局部坐标系中,选取 相邻的四个像素进行双线性内插。由在数学原理中的推导可知

双三次内插是三次插值的二维实现。选取与 相邻的16个像素进行双三次内插,局部坐标系中x与y坐标范围均为 。由数学原理中的推到可知

最近邻插值法的优点是计算量很小,运算速度较快。但它仅使用离待测采样点最近的像素的灰度值作为该采样点的灰度值,而没考虑其他相邻像素点的影响,因而重新采样后灰度值有明显的不连续性,会产生明显的马赛克和锯齿现象。

双线性插值法效果要好于最近邻插值,计算量较大。缩放后图像质量高,基本克服了最近邻插值灰度值不连续的特点,因为它考虑了待测采样点周围四个直接邻点对该采样点的相关性影响。但是,此方法未考虑到各邻点间灰度值变化率的影响, 具有低通滤波器的性质, 从而导致缩放后图像的高频分量受到损失, 图像边缘在一定程度上变得较为模糊,丢失了一些细节信息。

双立方插值计算量最大,运算速度慢。双立方插值用三阶函数逼近,不仅考虑到周围四个直接相邻像素点灰度值的影响,还考虑到它们灰度值变化率的影响,能够产生比双线性插值更为平滑的边缘,计算精度很高,处理后的图像细节损失最少,效果最佳。

以上就是关于求一段matlab程序,把序列中大于阀值的点去掉,并用线性插值得到的点替代全部的内容,包括:求一段matlab程序,把序列中大于阀值的点去掉,并用线性插值得到的点替代、如何使用Matlab实现双线性插值算法、MATLAB求助,画分段线性插值函数曲线,我用ezplot,hold on了啊,为什么只画出最后一段曲线等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10087905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存