<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一个由两列组成的数据集,X 和 Y,来自测量(使用 PAR 恒电位仪的循环伏安法)。 不幸的是,X 的间距不相等(在 0.0005 和 0.0015 之间变化),仪器的软件无法解决这个问题。 我想对数据进行重新采样或插值以获得相等的间距,比如 X 中的 0.001。 有快速的方法吗?
您问题的答案取决于您的 x 值的不规则程度,以及您所说的“插值”的确切含义。
所以下面的脚本绝对不是推荐,只是一个可能的例子。 如果您不需要脚本,您应该能够手动执行类似的步骤。
不过,重要的问题可能是您将使用最终值做什么?
名称默认到这里( 1个) ;
// (0) 使用特定函数制作一些均匀分布的数据
H =功能( { X } , {默认本地} , 0.5 + 0.4 *罪( 2个* π () * X ) ) ;
否= 100 ; // [0,1] 中(等距)x 值的数量
xVals =指数( 0 , 1个, 1个/ (否- 1个) ) `; // x 值作为列向量
y值= H ( xVals ) +杰(否, 1个,随机法线( 0 , 0.1 ) ) ; // y 值作为列向量
// (1) 随机抽取四分之三的数据来模拟不均匀的x值(但还是在原来的网格上)
德尔=随机索引(否,圆形的( 3个*否/ 4个, 0 )) ;
xVals [德尔] = [] ;
y值[德尔] = [] ;
dt =新表( “参差不齐x” ,
新专栏( “X” ,数字,连续的,价值观( xVals )) ,
新专栏( “是” ,数字,连续的,价值观( y值))
) ;
// (2) fit a kernel smoother 并保存预测公式
biv = dt <<双变量(是( :是) , X ( : X ) ) ;
biv <<内核平滑( 1个, 1个, 0.48261 , 0 , {保存预测公式}) ;
// (3) 得到预测公式
表格=柱子( dt , “y 的黄土预测器” ) <<获取属性( “公式” ) ;
// (4) 建立一个新表来保存等间距的 x 值
命令指令=表达式(
dt2 =新表( “甚至x” ,
新专栏( “X” ,数字,连续的) ,
新专栏( “预测 y” ,数字,连续的,公式(待定))
)
) ;
代入(命令指令,表达式(待定) ,求值表达式(表格)) ;
命令指令;
// (5) 将模拟的测量数据放入两个向量中
xVals =柱子( dt , “X” ) <<获取矩阵;
y值=柱子( dt , “是” ) <<获取矩阵;
// (6) 找到数据中最小的x增量
xDel =最小值( xVals [ 2个:: N行( xVals )] - xVals [ 1个:: ( N行( xVals ) - 1个)]) ;
// (7) 使用等间距(比如 3*xDel)用插值数据填充表格
xVals2 =指数( 0 , 1个, 3个* xDel ) `;
柱子( dt2 , “X” ) <<设定值( xVals2 ) ;
// (8) 查看结果
dt2 <<图形生成器(
尺寸( 534 , 454 ) ,
显示控制面板( 0 ) ,
变量( X ( : X ) ,是( :预测 y ) ) ,
元素(积分( X ,是,传奇( 5个) ) )
) ;