其实很简单,你只要删除很多空格即可比如 length of x=length(x)改成lengthofx=length(x)。其他一样。
代码
x=[0,3,5,7,9,11,12,13,14,15];
y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.4,1.6];
lengthofx=length (x);
scalarx=[x(1):0.5:x(lengthofx)];
lengthofx=length (scalarx);
for i=1:lengthofx;
ynearest(i)=interp1(x,y,scalarx(i),'nearest');
ylinear(i)=interp1(x,y,scalarx(i),'linear');
yspline(i)=interp1(x,y,scalarx(i),'spline');
ycubic(i)=interp1(x,y,scalarx(i),'cubic');
end
subplot(2,2,1),plot(x,y,'*'),hold on,plot(scalarx,ynearest),title('method=nearest');
subplot(2,2,2),plot(x,y,'*'),hold on,plot(scalarx,ylinear),title('method=linear');
subplot(2,2,3),plot(x,y,'*'),hold on,plot(scalarx,yspline),title('method=spline');
subplot(2,2,4),plot(x,y,'*'),hold on,plot(scalarx,ycubic),title('method=cubic');
复制上述指令我也画出图来了,看来最小临近法插值效果不平滑
%interpolation using the four methods
x=[0,3,5,7,9,11,12,13,14,15];
y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.4,1.6];
length_of_x=length(x);
scalar_x=[x(1):0.5:x(length_of_x)];
length_of_sx=length (scalar_x);
for i=1:length_of_sx;
y_nearest(i)=interp1(x,y,scalar_x(i),'nearest');
y_linear(i)=interp1(x,y,scalar_x(i),'linear');
y_spline(i)=interp1(x,y,scalar_x(i),'spline');
y_cubic(i)=interp1(x,y,scalar_x(i),'cubic');
end
subplot(2,2,1),plot(x,y,'*'),hold on,plot(scalar_x,y_nearest),title('method=nearest');
subplot(2,2,2),plot(x,y,'*'),hold on,plot(scalar_x,y_linear),title('method=linear');
subplot(2,2,3),plot(x,y,'*'),hold on,plot(scalar_x,y_spline),title('method=spline');
subplot(2,2,4),plot(x,y,'*'),hold on,plot(scalar_x,y_cubic),title('method=cubic');
五年级上册假期乐园数学, 语文 答案 快快快快快快 我急死了 快快快快快快 我有答案了我下 跪 求求了我等
电脑是win7的?不是就是电脑坏了