任务描述:站点降水有缺省值,所以需要线性插补空白数据

写成了函数,可以直接调用

第一种

%% 本函数用于线性插补缺省值
function A = default_linear_interpo(A,B)
%A是时间序列
%B是缺省值,站点的缺省值是32700
if A(1) == BA(1) = 0;                  %如果首位缺省,则赋值零
end
i = 2;
while i<=length(A)if A(i) == B               %发现缺省值则向后搜索找到非缺省值for j = i+1:length(A)if A(j) == B continue       %仍为缺省值则跳过elsebreak          %找到非缺省值就结束循环,j记录了非缺省值的位置endendslope = (A(j)-A(i-1))/(j-i+1);       %线性插补的斜率for k = i:j-1A(k) = A(i-1)+(k-i+1)*slope;     %根据斜率插补i到j-1endi = j-1;               %因为i到j-1都已经插补好了,所以i直接到j-1,避免重复插补endi = i+1;
end

第二种

%% 本函数用于缺失数据的线性插补
%% 修改时间 2021/10/26function A = f_Linear_interpolate(A)
%A是swe的一维时间序列,缺失数据需标记为nan%% 如果首位缺省,则向下搜索两个观测值,线性延长
loc = [0,0];                       %记录观测值出现位置
if isnan(A(1))          %确定缺省值位置B = ~isnan(A);for i = 1:length(B)if  loc(1) == 0 && sum(B(1:i)) == 1loc(1) = i;             %记录第一个观测值的位置endif sum(B(1:i)) == 2         %说明出现了两个观测值loc(2) = i;             %记录第二个观测值的位置breakendend%插值slope = (A(loc(2))-A(loc(1)))/(loc(2)-loc(1));        %线性插值的梯度for i = 1:loc(2)if ismember(i,loc)continueelseA(i) = A(loc(2))-(loc(2)-i)*slope;if A(i)<0A(i) =0;                                  %避免负值endendend
end%% 如果末位缺省,则向上搜索两个观测值,线性延长
loc = [0,0];                       %记录观测值出现位置
if isnan(A(end))          %确定缺省值位置B = ~isnan(A);for i = length(B):-1:1if  loc(2) == 0 && sum(B(i:end)) == 1loc(2) = i;             %记录倒序第一个观测值的位置endif sum(B(i:end)) == 2    %说明出现了两个观测值loc(1) = i;             %记录倒序第二个观测值的位置breakendend%插值slope = (A(loc(2))-A(loc(1)))/(loc(2)-loc(1));        %线性插值的梯度for i = length(A):-1:loc(1)if ismember(i,loc)continueelseA(i) = A(loc(1))+(i-loc(1))*slope;if A(i)<0A(i) =0;                                  %避免负值endendend
end%% 缺省值在中间,则向上向下各搜索最近实测值,进行线性插值
i = 2;
while i<=length(A)if isnan(A(i))               %发现缺省值则向后搜索找到非缺省值for j = i+1:length(A)if isnan(A(j))continue         %仍为缺省值则跳过elsebreak            %找到非缺省值就结束循环,j记录了非缺省值的位置endendslope = (A(j)-A(i-1))/(j-i+1);    %线性插补的斜率for k = i:j-1A(k) = A(i-1)+(k-i+1)*slope;  %根据斜率插补i到j-1endi = j-1;                 %因为i到j-1都已经插补好了,所以i直接到j-1,避免重复插补endi = i+1;
endend

MATLAB 线性插补缺省值相关推荐

  1. matlab求分段函数的值.,如何用MATLAB求分段函数的最小值和最大值?

    7.1.1 分段线性插值 所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理.实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要 ...

  2. matlab实现线性函数逼近,[转载]【MATLAB】MATLAB 线性拟合小结 ——nb

    MATLAB 线性拟合小结 -- REGRESS多元线性回归(用最小二乘估计法) http://wenku.baidu.com/view/0a0ea0de941ea76e59fa0418.html?r ...

  3. CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)

    CV:计算机视觉技术之图像基础知识(一)-以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边) 目录 一.图像中的傅里叶变换 1 ...

  4. 中南大学 科学计算与MATLAB语言 11矩阵求值

    中南大学 科学计算与MATLAB语言 11矩阵求值 矩阵求值主要包括 矩阵的行列式值 矩阵的秩 矩阵的迹 矩阵的范数 矩阵的条件数 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称方阵所 ...

  5. 【图像去噪】基于matlab小波变换(硬阙值+软阙值)图像去噪【含Matlab源码 391期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab小波变换(硬阙值+软阙值)图像去噪[含Matlab源码 391期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  6. 【Matlab瑕疵检测】阙值瓶盖瑕疵检测【含源码 730期】

    一.代码运行视频(哔哩哔哩) [Matlab瑕疵检测]阙值瓶盖瑕疵检测[含源码 730期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLAB ...

  7. 《图形图像处理》— 使用matlab对图像进行二值化和灰度化处理

    用matlab对图像进行二值化处理 >>m = imread('d:\image\logo.jpg'); >> imshow(n); >> n = graythre ...

  8. 9495 删除线性表中所有值为x的元素

    题目描述 Description 已知长度为n的线性表采用顺序存储结构.写一算法,删除线性表中所有值为x的元素. 输入格式 第一行 输入表长 第二行 输入指定表长的整数 第三行 输入待删除的整数 输出 ...

  9. 【老生谈算法】matlab实现车牌识别中值滤波算法——车牌识别中值滤波算法

    基于Matlab的车牌识别中值滤波算法的研究与实现 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]基于Matlab的车牌识别中值滤波算 ...

最新文章

  1. 不要小看小小的 emoji 表情
  2. 那个14岁上大学、17岁读博、24岁成教授的天才神童,如今怎样了?
  3. wifi漫游测试过程
  4. 【AI-1000问】Face detection、alignment、verification、identification(recognization) 你能分的清楚吗?
  5. Python中的运算符
  6. LeetCode上求最长公共字符前缀字符串问题——Longest Common Prefix
  7. 双12来了!揭秘秒杀剁手背后的云数据库PolarDB!
  8. 从神经质症的发生发展过程找到走出焦虑的途径
  9. spring——使用xml声明式事务整合jdbc——GRUD
  10. 【转】c# 协变与抗变
  11. 电脑重装系统后没声音怎么办
  12. 杭州微念申请李子柒商标被全部驳回,“最惨打工人”李子柒开始反击:已起诉!...
  13. Eclipse导入MySQL驱动包
  14. 【linux】nmap命令使用
  15. 计算机基本组成及功能
  16. Windows安装最新版Pygame
  17. 周志华机器学习笔记(一)
  18. JS操作word文档
  19. Apache2 虚拟主机 详解
  20. 驱动机架的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. 通过xsd校验xml文件
  2. SpringBoot实现邮箱发送验证码
  3. [原创]-数据仓库ETL开发
  4. Elasticsearch集群“脑裂”现象
  5. 曝 OPPO 给离职员工补发年终奖,此前遭克扣
  6. 布局未来移动出行,需要怎样的互联汽车解决方案?
  7. (转) maven 依赖com.google.code.kaptcha
  8. Debezium的MySQL连接器的工作原理
  9. 人工智能写作的春天来了 除了写作, 人工智能还能写诗、画画
  10. GTO与OKR工具选择