【Matlab】线性插值

例:

有一组函数,x=0:10:100,y=f(x),想线性插值的方式求函数值,例如:

x=2.5,根据x=0、f(0)、x=10、f(10)插值求x=2.5时的值

x=-10,根据x=0、f(0)、x=10、f(10)插值求x=-10时的值

x=55,根据x=50、f(50)、x=60、f(60)插值求x=55时的值

x=101,根据x=90、f(90)、x=100、f(100)插值求x=101时的值

注:此情况下,内插精度较高

代码:

主代码:

matlab 复制代码
%线性插值只有内插时精度是最好的
clc
clear
close all
%%
x=0:1:100;
y=sin(x);
x0=9.05;
y0=ChaZhi(x,y,x0)
%%
figure(1)
plot(x,y,'b-')
hold on
plot(x0,y0,'r*')

插值函数:

matlab 复制代码
function y0=ChaZhi(x,y,x0)%x是行矩阵
%%
xx=sort([x,x0]);
label=find(xx==x0);%找到x0的标签
label=label(1);
%% 找最近的两个数,超范围了就取最小/大的两个值
if label==1
    x1=xx(2);y1=y(1);
    x2=xx(3);y2=y(2);
elseif label==length(xx)
    x1=xx(length(xx)-1);y1=y(length(y));
    x2=xx(length(xx)-2);y2=y(length(y)-1);
else
    x1=xx(label-1);y1=y(label-1);
    x2=xx(label+1);y2=y(label);
end
%% 线性插值
y0=y2-(y2-y1)/(x2-x1)*(x2-x0);
相关推荐
hoiii18732 分钟前
基于协方差矩阵的车辆检测(Matlab实现)
计算机视觉·matlab·矩阵
Evand J34 分钟前
【MATLAB程序】基于RSSI的RFID二维轨迹定位仿真介绍,EKF滤波增加轨迹定位精度。附下载链接
开发语言·matlab·平面·滤波·定位·导航
guygg8835 分钟前
MATLAB实现Bouc-Wen模型动力响应计算
开发语言·matlab
aini_lovee39 分钟前
基于MATLAB实现行人检测
开发语言·matlab
Evand J20 小时前
【MATLAB代码介绍】无迹粒子滤波(Unscented Particle Filter),运动目标滤波定位
开发语言·matlab·粒子滤波·upf·无迹
bubiyoushang88820 小时前
MATLAB考虑源荷不确定性的电力系统优化
开发语言·matlab
南宫萧幕1 天前
车辆控制基础:从 EKF 状态估计到非线性 MPC 轨迹跟踪的闭环实现
算法·matlab·汽车·控制·pid
简简单单做算法1 天前
基于Qlearning强化学习的空天异构网络切换判决优化算法matlab仿真
网络·matlab·qlearning·空天异构网络·切换判决
laowangpython1 天前
Gurobi求解器Matlab安装配置教程
开发语言·其他·matlab
简简单单做算法2 天前
基于GA遗传优化双BP神经网络的时间序列预测算法matlab仿真
神经网络·算法·matlab·时间序列预测·双bp神经网络