哪位大神详细的解释一下matlab中的一段程序

问题描述:

哪位大神详细的解释一下matlab中的一段程序
function s = getspline(x)
N = length(x);p = findpeaks(x);
s = spline([0 p N+1],[0 x(p) 0],1:N);
1个回答 分类:综合 2014-10-21

问题解答:

我来补答
首先,这是一个函数.
函数的输入变量是x,输出是s,s是和x一样size的数组
N = length(x);%得到输入数组x的长度
p = findpeaks(x);%找到数组x中所有的极值点,这里的极大值点就是比相邻的数都大的点.
s = spline([0 p N+1],[0 x(p) 0],1:N);%对这些所有的极大值点进行三次样条插值,得到新的数组s.spline就是三次样条插值函数
再问: 多谢了,还有一个问题就是spline里面的[0 p N+1]和[0 x(p) 0]具体是什么意思呀??在spline里面是什么角色?
再答: [0,p,N+1]是插值点, [0 x(p) 0]是插值点对应的值, 1:N是我们所需要得到的那些点的坐标。 看看下面的例子,你可能更容易理解spline函数的使用。 x = 0:10; y = sin(x); xx = 0:.25:10; yy = spline(x,y,xx); plot(x,y,'o',xx,yy)
 
 
展开全文阅读
剩余:2000