【matlab】csape 和interp1有什么相同和区别?

RT。。。
csape似乎可以选择样条的边界条件。
那么interp1的边界条件是什么呢?2者在使用上有什么相同和不同?

csape和interp1都是插值函数。
csape可以选择样条的边界条件,interp1无法使用边界条件;
csape只是Cubic spline插值,interp1可以选择几种不同的插值方法。

csape函数的用法如下:
pp = csape(x,y,conds,valconds)
其中(x,y)为数据向量,conds表示变界类型, valconds表示边界值。
边界类型(conds)可为:
'complete',给定边界一阶导数.
'not-a-knot',非扭结条件,不用给边界值.
'periodic',周期性边界条件,不用给边界值.
'second',给定边界二阶导数.
'variational',自然样条(边界二阶导数为0)
边界类型(valconds)可为:
'complete',给定边界一阶导数.
'not-a-knot',非扭结条件,不用给边界值.
'periodic',周期性边界条件,不用给边界值.
'second',给定边界二阶导数.
'variational',自然样条(边界二阶导数为0)

interp1函数的用法如下:
  yi=interp1(x,Y,xi):返回插值向量yi,每一元素对应于参量xi,同时由向量X与Y的内插值决定。参量x 指定数据Y的点。若Y为一矩阵,则按Y的每列计算。yi是阶数为length(xi)*size(Y,2)的输出矩阵。
  yi=interp1(Y,xi):假定x=1:N,其中N为向量Y的长度,或者为矩阵Y的行数。
  yi=interp1(x,Y,xi,method):用指定的算法计算插值。nearest为最近邻点插值,直接完成计算;linear为线性插值(默认方式),直接完成计算;spline为三次样条函数插值。
  yi=interp1(x,Y,xi,method,'extrap'):对于超出x范围的xi中的分量将执行特殊的外插值法extrap。
  yi=interp1(x,Y,xi,method,extrapval):确定超出x范围的xi中的分量的外插值extrapval,其值通常取NaN或0。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-04
三次样条插值直接用spline函数做。
边界条件加在y的首尾,第一个表示y'(x0),最后一个表示y'(xt)。
如果不加边界条件,默认是not-a-knot边界条件(注意不是自然边界条件)
自然边界条件的插值要用csape函数才能得到。
如果用interp1,则只能使用spline函数的默认边界条件,即not-a-knot条件。
下面是例子
x=0:3:9;
y=x.*cos(x);
xx=linspace(0,9);
plot(x,y,'o');%样本点
hold
on;
plot(xx,interp1(x,y,xx,'spline'),'r');%interp1只能使用默认边界条件
plot(xx,spline(x,[0
y
0],xx),'r:');%spline可以使用第一类边界条件,这里y'(0)=y'(9)=0
pp=csape(x,y,'second');
plot(xx,fnval(pp,xx))%第二类边界条件要用csape做,这里自然边界条件
legend('样本点','默认边界条件','一阶导为0','自然边界条件','location','south')
第2个回答  2009-10-30
1.csape似乎可以选择样条的边界条件。

对的。

2.那么interp1的边界条件是什么呢?

这里面无法使用边界条件。

3.2者在使用上有什么相同和不同?

csape就只是Cubic spline插值

interp1可以选择几种不同的插值方法本回答被提问者采纳
第3个回答  2015-11-07
figure表示新建一个图窗口,以免后续的绘图语句覆盖原图;hold on表示在原图的基础上绘制新的图像
参考代码
clc
clear all
close all
tic
n = 10; % 数据点数
x = 1:n; % 横坐标
y1 = randi(10, 1, n); % 纵坐标
y2 = randi(10, 1, n); % 纵坐标
figure
plot(x, y1);
figure % 想要看hold on的效果,请将改行注释掉,并取消下一行的注释
% hold on
plot(x, y2, 'r');
toc