为计算分段线性插值,自编了一个MATLAB的函数文件如下,其中的关键代码处都给出了注释,请读懂函数代码,并在空白处填写上缺失的MATLAB语句。 function interp_y =Piecewise_Linear_interp( knot_x,knot_y,interp_x) % 函数名Piecewise:分段,Linear:线性, %Interp:interpolation插值 %knot_x:插值节点构成的一维数组; %knot_y:插值节点对应的y值构成的一维数组; %interp_x:想要计算插值结果的x构成的数组,可以是一个值,也可以是一个数组; %interp_y:返回值,返回interp_x对应的插值结果;如果interp_x的大小超出了knot_x的范围,interp_y返回NaN; Number_knot=length(knot_x); %Number_knot为插值节点的个数; Number_interp=length(interp_x); %Number_interp为想要计算插值结果的点interp_x的个数; [Nx,index]=sort(knot_x); %为防止插值节点knot_x不是严格单调递增的,因此先用sort函数进行排序,排序后存在数组Nx中; for i=1:Number_knot Ny(i)=knot_y(index(i)); %按照排序后的结果,对应的调整knot_y的顺序,存在Ny中,注意,Ny不一定要从小到大排序; end for i=1:Number_interp %因为要计算插值结果的x可能不止一个,所有用for循环逐个计算插值结果 x=interp_x(i); %x为当前要计算的值; F=find(Nx