如何用MATLAB 编写interpl插值函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用MATLAB 编写interpl插值函数相关的知识,希望对你有一定的参考价值。
interpl插值程序也叫分段性插值程序
yi = interp1(x,y,xi,method)
已知样本点坐标x,y,求xi处的函数值yi,插值方法是method。
function [输出变量] = 函数名称(输入变量)
% 注释
% 函数体
如下所示,是编写的一个求1到n之和的求和函数 eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头:
function [s] = eg_sum( n )
% calculate the sum of 1..n
s = 0;
for i = 1:n
s = s + i;
end
回到控制台Command Window(主界面),注意要使用之前保存的函数文件名来调用函数,如下所示:
>> clear
>> a = eg_sum(10)
运行结果: a = 55
扩展资料:
对于函数f(x),常常不仅知道它在一些点的函数值,而且还知道它在这些点的导数值。这时的插值函数P(x),自然不仅要求在这些点等于f(x)的函数值,而且要求P(x)的导数在这些点也等于f(x)的导数值。这就是埃尔米特插值问题,也称带导数的插值问题。
从几何上看,这种插值要寻求的多项式曲线不仅要通过平面上的已知点组,而且在这些点(或者其中一部分)与原曲线“密切”,即它们有相同的斜率。可见埃尔米特插值多项式比起一般多项式插值有较高的光滑逼近要求。
参考资料来源:百度百科-插值
参考技术A yi = interp1(x,y,xi,method)已知样本点坐标x,y,求xi处的函数值yi,插值方法是method
method有以下几种:
'nearest'邻近点插值
'linear'线性插值(默认)
'spline'三次样条函数插值
'cubic'三次函数插值
常用的是'spline'和'cubic'
例子:
x = 0:10;
y = sin(x);
xi = 0:.25:10;
yi = interp1(x,y,xi,'spline');
plot(x,y,'o',xi,yi) 参考技术B 你要的是编这命令的程序还是怎么运用这个命令啊
matlab 如何用插值给NAN赋值
我现在有个360*180的二维矩阵,然后里面有一些NAN值。这些NAN值不能去掉也不能改成0,因为会影响最后的结果,所以我想用插值的方法给NAN赋值。请问这个程序怎么编呐?谢谢!
参考技术A 第一列到倒数第二列都是nan,之后最后一列有值那么其他值以什么标准来填新值呢?
哪怕多知道第一列的值,中间的还可以根据一前一后两个值插值计算得出
如果有足够的数据,至少第一点和最后一点知道,还是可以通过interp1插值填充的
只是要处理一下避开nan点
假设你原来数据是a
使用find(isnan(a))可以返回所有数据中是nan的值的位置
可以根据其填充新值
以上是关于如何用MATLAB 编写interpl插值函数的主要内容,如果未能解决你的问题,请参考以下文章