【MATLAB第24期】源码分享| 基于MATLAB的五种插值方法合集(线性、三次、三次样条、最邻近、分段三次Hermite),解决多变量样本空值插值,以及零值插值

简介: 【MATLAB第24期】源码分享| 基于MATLAB的五种插值方法合集(线性、三次、三次样条、最邻近、分段三次Hermite),解决多变量样本空值插值,以及零值插值

MATLAB第24期】源码分享| 基于MATLAB的五种插值方法合集(线性、三次、三次样条、最邻近、分段三次Hermite),解决多变量样本空值插值,以及零值插值


免费提供试用版代码,可自行运行计算结果。


1.数据要求


(1)数据均为数值格式。

(2)每行为不同变量的值。

(2)首尾数据得有值,不能空缺。


2.插值方法


(1)线性插值

(2)三次插值

(3)三次样条插值

(4)最邻近插值

(5)分段三次Hermite插值


3.插值思路


(1)提取非零或者非空对应的数据进行插值

(2)找到对应非零或者非空的行以及列

(3)使用五种方法,用for循环分别对提取后的残缺合集进行插值

(4)对插值结果赋值为datanew1~5

(5)将插值的结果替换原来的非零或者非空数据

(6)判断插值结果是否为负


4.插值数据


(1)空值插值

(2)零值插值



5.插值结果


插值结果不一一举例,选取线性插值结果进行展示。

(1)空值插值

(2)零值插值


6.主程序代码展示(部分)


(1)空值插值


clc,clear;
data=xlsread('randNaNExample.xlsx','Sheet1'); %提取数据分析1数据
data1=data(:,1:end);% 
[M,p1,p2,p3,p4,p5] = mynan(data);
finaldata1=data1;%  线性插值结果
finaldata2=data1;%   三次插值结果
finaldata3=data1;%   三次样条插值法结果
finaldata4=data1;% 最邻近插值法结果
finaldata5=data1;%   分段三次Hermite插值预测结果
%判断p有没有负数 
for i=1:size(M,1)
cc1{i,1}=find(p1{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
for i=1:size(M,1)
cc2{i,1}=find(p2{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
for i=1:size(M,1)
cc3{i,1}=find(p3{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
for i=1:size(M,1)
cc4{i,1}=find(p4{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
for i=1:size(M,1)
cc5{i,1}=find(p5{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
datanew1=cell2mat(p1);%  还原p矩阵 线性插值
datanew2=cell2mat(p2);%  还原p矩阵 三次插值
datanew3=cell2mat(p3);%  还原p矩阵 三次样条插值法
datanew4=cell2mat(p4);%  还原p矩阵 最邻近插值法
datanew5=cell2mat(p5);%  还原p矩阵 分段三次Hermite插值预测
finaldata1(M,:)=datanew1;% data原来的数据 有空值的样本都替换成新插值的样本
finaldata2(M,:)=datanew2;% data原来的数据 有空值的样本都替换成新插值的样本
finaldata3(M,:)=datanew3;% data原来的数据 有空值的样本都替换成新插值的样本
finaldata4(M,:)=datanew4;% data原来的数据 有空值的样本都替换成新插值的样本
finaldata5(M,:)=datanew5;% data原来的数据 有空值的样本都替换成新插值的样本

(2)零值插值

clc,clear;
data=xlsread('rand0Example.xlsx','Sheet1'); %提取数据分析1数据
data1=data(:,1:end);% 
[M,p1,p2,p3,p4,p5] = myzero(data);
finaldata1=data1;%  线性插值结果
finaldata2=data1;%   三次插值结果
finaldata3=data1;%   三次样条插值法结果
finaldata4=data1;% 最邻近插值法结果
finaldata5=data1;%   分段三次Hermite插值预测结果
%判断p有没有负数 
for i=1:size(M,1)
cc1{i,1}=find(p1{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
for i=1:size(M,1)
cc2{i,1}=find(p2{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
for i=1:size(M,1)
cc3{i,1}=find(p3{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
for i=1:size(M,1)
cc4{i,1}=find(p4{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
for i=1:size(M,1)
cc5{i,1}=find(p5{i,1}<0);  %cc 变量里 如果有值,说明存在负数
end
datanew1=cell2mat(p1);%  还原p矩阵 线性插值
datanew2=cell2mat(p2);%  还原p矩阵 三次插值
datanew3=cell2mat(p3);%  还原p矩阵 三次样条插值法
datanew4=cell2mat(p4);%  还原p矩阵 最邻近插值法
datanew5=cell2mat(p5);%  还原p矩阵 分段三次Hermite插值预测
finaldata1(M,:)=datanew1;% data原来的数据 有空值的样本都替换成新插值的样本
finaldata2(M,:)=datanew2;% data原来的数据 有空值的样本都替换成新插值的样本
finaldata3(M,:)=datanew3;% data原来的数据 有空值的样本都替换成新插值的样本
finaldata4(M,:)=datanew4;% data原来的数据 有空值的样本都替换成新插值的样本
finaldata5(M,:)=datanew5;% data原来的数据 有空值的样本都替换成新插值的样本


7.代码获取


试用版代码以及案例数据将基本免费提供。

后台私聊“第24期试用版”获取试用版下载链接

后台私聊“第24期完整版”获取完整版下载链接


目录
打赏
0
0
0
0
267
分享
相关文章
基于魏格纳函数和焦散线方法的自加速光束matlab模拟与仿真
本项目基于魏格纳函数和焦散线方法,使用MATLAB 2022A模拟自加速光束。通过魏格纳函数法生成多种自加速光束,并设计相应方法,展示仿真结果。核心程序包括相位和幅度的计算、光场分布及拟合分析,实现对光束传播特性的精确控制。应用领域涵盖光学成像、光操控和光束聚焦等。 关键步骤: 1. 利用魏格纳函数计算光场分布。 2. 模拟并展示自加速光束的相位和幅度图像。 3. 通过拟合分析,验证光束加速特性。 该算法原理基于魏格纳函数描述光场分布,结合数值模拟技术,实现对光束形状和传播特性的精确控制。通过调整光束相位分布,可改变其传播特性,如聚焦或加速。
125 20
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真
本课题针对两电机变频调速系统,提出基于神经网络a阶逆系统的控制方法。通过构造原系统的逆模型,结合线性闭环调节器实现张力与速度的精确解耦控制,并在MATLAB2022a中完成仿真。该方法利用神经网络克服非线性系统的不确定性,适用于参数变化和负载扰动场景,提升同步控制精度与系统稳定性。核心内容涵盖系统原理、数学建模及神经网络逆同步控制策略,为工业自动化提供了一种高效解决方案。
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
225 2
MATLAB中的基本数据类型与变量操作
【10月更文挑战第1天】 MATLAB 是一种广泛应用于数学计算和科学研究的编程语言,其核心是矩阵运算。本文详细介绍了 MATLAB 中的基本数据类型,包括数值类型(如 `double` 和 `int`)、字符数组、逻辑类型、结构体、单元数组和函数句柄,并通过代码示例展示了变量操作方法。
370 0
【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现
基于灰度矩的亚像素边缘检测方法,包括理论基础和MATLAB实现,通过计算图像的灰度矩来精确定位边缘位置,并提供了详细的MATLAB代码和实验结果图。
212 6
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
136 4
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
176 1
基于星座图整形方法的QAM调制解调系统MATLAB误码率仿真,对比16,32,64,256四种QAM调制方式
本MATLAB 2022a仿真展示了不同QAM阶数下的星座图及误码率性能,通过星座图整形技术优化了系统性能。该技术利用非均匀分布的星座点提高功率效率,并通过合理布局增强抗干扰能力。随着QAM阶数增加,数据传输速率提升,但对信道质量要求也更高。核心程序实现了从比特生成到QAM映射、功率归一化、加噪及解调的全过程,并评估了系统误码率。
190 0
Matlab|基于改进鲸鱼优化算法的微网系统能量优化管理matlab-源码
基于改进鲸鱼优化算法的微网系统能量管理源码实现,结合LSTM预测可再生能源和负荷,优化微网运行成本与固定成本。方法应用于冷热电联供微网,结果显示经济成本平均降低4.03%,提高经济效益。代码包括数据分段、LSTM网络定义及训练,最终展示了一系列运行结果图表。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等