【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期完整版”获取完整版下载链接


相关文章
|
4月前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
1月前
|
存储
MATLAB - 使用 MPC Designer 线性化 Simulink 模型
MATLAB - 使用 MPC Designer 线性化 Simulink 模型
31 1
|
1月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
|
1月前
|
计算机视觉
【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现
基于灰度矩的亚像素边缘检测方法,包括理论基础和MATLAB实现,通过计算图像的灰度矩来精确定位边缘位置,并提供了详细的MATLAB代码和实验结果图。
50 6
|
1月前
|
算法 5G vr&ar
基于1bitDAC的MU-MIMO的非线性预编码算法matlab性能仿真
在现代无线通信中,1-bit DAC的非线性预编码技术应用于MU-MIMO系统,旨在降低成本与能耗。本文采用MATLAB 2022a版本,深入探讨此技术,并通过算法运行效果图展示性能。核心代码支持中文注释与操作指导。理论部分包括信号量化、符号最大化准则,并对比ZF、WF、MRT及ADMM等算法,揭示了在1-bit量化条件下如何优化预编码以提升系统性能。
|
1月前
|
自然语言处理
一级倒立摆控制 - 非线性 MPC 控制及 MATLAB 实现
一级倒立摆控制 - 非线性 MPC 控制及 MATLAB 实现
29 0
|
1月前
|
算法 数据安全/隐私保护
基于星座图整形方法的QAM调制解调系统MATLAB误码率仿真,对比16,32,64,256四种QAM调制方式
本MATLAB 2022a仿真展示了不同QAM阶数下的星座图及误码率性能,通过星座图整形技术优化了系统性能。该技术利用非均匀分布的星座点提高功率效率,并通过合理布局增强抗干扰能力。随着QAM阶数增加,数据传输速率提升,但对信道质量要求也更高。核心程序实现了从比特生成到QAM映射、功率归一化、加噪及解调的全过程,并评估了系统误码率。
31 0
|
1月前
【光波电子学】MATLAB绘制光纤中线性偏振模式LP之单模光纤的电场分布(光斑)
该文章介绍了如何使用MATLAB绘制单模光纤中线性偏振模式LP₀₁的电场分布,并提供了相关的数学公式和参数用于模拟光纤中的光斑分布。
19 0
|
2月前
|
算法 vr&ar
基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法
```markdown - MATLAB2022a中比较SG与RLS自适应波束成形算法。核心程序实现阵列信号处理,强化期望信号,抑制干扰。RLS以其高效计算权重,而SG则以简单和低计算复杂度著称。[12345] [6666666666] [777777] ```
|
4月前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。

热门文章

最新文章