三次B样条拟合时,出现的问题??
同一组数据,拟合后,截取点数(25:1025)也就是1000个点,怎么在两幅图上得到不同的结果?明显不对,请大虾帮忙看一下。。。。谢谢:handshake 给齐完整格式:出错代码和出错提示!
回复 沙发 ChaChing 的帖子
代码没有错,只是在两幅图上显示不一样, 我想上传附件图,找不到上传的地方,我把程序给你看看吧, 你用这个程序函数自己画 的图,对比 和用Plot(bt(25:1025),'.')两个不一样,希望指点一下,现在正急用。。。。
function =Bspline3(x,y)
% Function to draw the cubic B-spline
% x:控制点横坐标矢量
% y:控制点纵坐标矢量
%x=;
%y=;
plot(x,y,'bh');hold on;
plot(x,y);hold on;
n=length(x);
%m=60;
dt=1/(2.5*n); num=1;
for l=1:(n-3)
a0=(x(l)+4*x(1+l)+x(2+l))/6;
a1=(x(l+2)-x(l))/2; a2=(x(l)-2*x(1+l)+x(2+l))/2;
a3=-(x(l)-3*x(1+l)+3*x(2+l)-x(l+3))/6;
b0=(y(l)+4*y(1+l)+y(2+l))/6;
b1=(y(l+2)-y(l))/2; b2=(y(l)-2*y(1+l)+y(2+l))/2;
b3=-(y(l)-3*y(1+l)+3*y(2+l)-y(l+3))/6;
for i=0:1:2.5*n
t=i*dt;
xx(num)=a0+a1*t+a2*t^2+a3*t^3;
yy(num)=b0+b1*t+b2*t^2+b3*t^3;
num=num+1;
end
end
bt=yy; at=xx; plot(xx,yy,'r');
[ 本帖最后由 ChaChing 于 2009-5-7 20:05 编辑 ] Plot(bt(25:1025),'.')是1000个数据点
可在函数自己画的图上显示的不是1000个点。???
回复 板凳 luoye919 的帖子
按左下角编辑, 进去後浏览即可上传附件图!LZ是说Bspline3画出的图与plot(bt)不同吗? 当然不同!
plot(bt)相当於plot(,bt), 而Bspline3画出的图为plot(at,bt)!
除非at=, 否则当然不同!
回复 地板 luoye919 的帖子
Plot(bt(25:1025),'.')是1001个点 (1025-25+1)!
页:
[1]