⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 piecewise_linear_interpolation.m

📁 分段线性插值 包含输入数组的排序和插值点生成
💻 M
字号:
%分段线性插值函数
%x0,y0为提供的节点值,x为插值点的横坐标值向量
function y=piecewise_linear_interpolation(x0,y0,x)
if (nargin<2)|(size(x0)~=size(y0))
    error('input error!')
end
if nargin==2
    x=linspace(min(x0),max(x0),41);
end
[x0,b]=sort(x0);
y0=y0(b);                           %x0,y0对应排序
x0
y0
x
length_x0=size(x0);
length_x0=length_x0(2);
length_x=size(x);
length_x=length_x(2);
y=zeros(size(x))
for i=1:length_x
    j=1;
    while (((x0(j)-x(i))*(x0(j+1)-x(i)))>0)&&(j<length_x0)
        j=j+1;
%       pause
    end
    if (j==length_x0)
        y(i)=y0(j)
    else
        y(i)=((x(i)-x0(j))*y0(j+1)+(x0(j+1)-x(i))*y0(j))/(x0(j+1)-x0(j))
    end
end
%plot(x,y,'*');
%hold on 
%plot(x0,y0,'o');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -