【matlab】代码库-一维线性插值

interp_1D函数:一维线性插值

摘要:该MATLAB函数interp_1D实现一维线性插值功能。首先检查输入点数组和值数组的维度一致性并统一转换为列向量。通过遍历查找给定点是否与查找表(LUT)中的点匹配,若未找到则进行线性插值计算:确定相邻上下界点,按比例计算插值结果。还处理了超出LUT范围的情况,直接返回边界值。函数支持非均匀间隔的输入点,并包含零斜率情况的特殊处理。

matlab 复制代码
function out = interp_1D(point,lut_ponit,lut_value)
% 查找当前绑点point对应的线性插值
% V1_20251202

%判断维度是都一致
[V,H,~]=size(lut_ponit);
[v,h,~]=size(lut_value);
num_1=max(V,H);
num_2=max(v,h);
if num_1~=num_2
    disp('数组大小不一致')
end

num=num_2;

if H>V
    lut_ponit=lut_ponit';
end

if h>v
    lut_value=lut_value';
end
%都转换成竖向的表格



%检查point是否和LUT列表数值某一个一样
for i=1:num
    if point==lut_ponit(i)
         out=lut_value(i);
    end
    
end


%筛选上下绑点
for i=1:num-1
    if point>lut_ponit(i) && point<lut_ponit(i+1)
        if (lut_value(i+1)-lut_value(i))~=0
        out=lut_value(i)+(point-lut_ponit(i))*(lut_value(i+1)-lut_value(i)) / (lut_ponit(i+1)-lut_ponit(i));
        else
            out=lut_value(i);
       end
    end

    if point>lut_ponit(num)
        out=lut_value(num);
    end

end
相关推荐
程序员-King.6 小时前
day158—回溯—全排列(LeetCode-46)
算法·leetcode·深度优先·回溯·递归
星火开发设计7 小时前
C++ 数组:一维数组的定义、遍历与常见操作
java·开发语言·数据结构·c++·学习·数组·知识
月挽清风7 小时前
代码随想录第七天:
数据结构·c++·算法
TTGGGFF7 小时前
控制系统建模仿真(一):掌握控制系统设计的 MAD 流程与 MATLAB 基础运算
开发语言·matlab
小O的算法实验室7 小时前
2026年AEI SCI1区TOP,基于改进 IRRT*-D* 算法的森林火灾救援场景下直升机轨迹规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
小郭团队8 小时前
2_1_七段式SVPWM (经典算法)算法理论与 MATLAB 实现详解
嵌入式硬件·算法·硬件架构·arm·dsp开发
充值修改昵称8 小时前
数据结构基础:从二叉树到多叉树数据结构进阶
数据结构·python·算法
Deepoch8 小时前
Deepoc数学大模型:发动机行业的算法引擎
人工智能·算法·机器人·发动机·deepoc·发动机行业
-To be number.wan8 小时前
【数据结构真题解析】哈希表中等难度挑战:冲突处理与查找效率深度剖析
数据结构·哈希算法