<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 值的数量
值=指数( 0 , 1 , 1 / (氮- 1 ) ) `; // x 值作为列向量
y值= H (值) + J (氮, 1 ,随机正态( 0 , 0.1 ) ) ; // y 值作为列向量
// (1) 随机抽取四分之三的数据来模拟不均匀的 x 值(但仍在原始网格上)
德尔=随机索引(氮,圆形的( 3 *氮/ 4 , 0 )) ;
值[德尔] = [] ;
y值[德尔] = [] ;
dt =新表( “不均匀x” ,
新专栏( “X” ,数字,连续的,价值观(值)) ,
新专栏( “是” ,数字,连续的,价值观( y值))
) ;
// (2) 拟合核平滑器并保存预测公式
BIV = dt <<双变量(是( : y ) , X ( : X ) ) ;
BIV <<内核平滑器( 1 , 1 , 0.48261 , 0 , {保存预测公式}) ;
// (3) 得到预测公式
表格=柱子( dt , “y 的黄土预测器” ) <<获取属性( “公式” ) ;
// (4) 构建一个新表来保存等距的 x 值
指令管理系统=表达式(
dt2 =新表( “甚至x” ,
新专栏( “X” ,数字,连续的) ,
新专栏( “预测到了” ,数字,连续的,公式(待定))
)
) ;
代入(指令管理系统,表达式(待定) ,评估表达式(表格)) ;
指令管理系统;
// (5) 将模拟测量数据获取为两个向量
值=柱子( dt , “X” ) <<获取矩阵;
y值=柱子( dt , “是” ) <<获取矩阵;
// (6) 找出数据中最小的x增量
删除=最小(值[ 2 ::行(值)] -值[ 1 :: (行(值) - 1 )]) ;
// (7) 使用等间距(例如 3*xDel)用插值数据填充表格
xVals2 =指数( 0 , 1 , 3 *删除) `;
柱子( dt2 , “X” ) <<设置值( xVals2 ) ;
// (8) 查看结果
dt2 <<图形生成器(
尺寸(第534章,第454章) ,
显示控制面板( 0 ) ,
变量( X ( : X ) ,是( :预测y ) ) ,
元素(积分( X ,是,传奇( 5 ) ) )
) ;