Scilab 数据拉伸

Scilab Data stretching

我有一个包含 2 列的数据文件。第一列从 0 运行到 1390 第二列具有不同的值。 (第一列是 X 像素坐标,第二列是强度值)。

我想要 "stretch" 数据,以便第一列从 0 到 1516,第二列对这些新数据点进行线性插值。

有什么简单的方法可以在 scilab 中做到这一点?

数据如下所示: 0 300.333 1 289.667 2 273 ... 1388 427 1389 393.667 1390 252

插值

您可以使用 interpln. Following the demo implementation on the docs 进行线性插值,这会产生以下代码。

示例代码

x=[0 1 2 1388 1389 1390];
y=[300.333 289.667 273 427 393.667 252];

plot2d(x',y',[-3],"011"," ",[-10,0,1400, 500]);

yi=interpln([x;y],0:1390);

plot2d((0:1390)',yi',[3],"000");

结果图

外推法

我认为您正在考虑外推,因为它在已知测量值之外而不是介于两者之间。

您应该确定是否要拟合数据 datafit. For a tutorial see here or here

问题是如何"stretch" y 向量从 1391 个值到 1517 个值。可以按照 @user1149326 的建议使用 interpln 来做到这一点,但我们需要在插值之前拉伸 x 向量:

x=[0 1 2 1388 1389 1390];
y=[300.333 289.667 273 427 393.667 252];    
d=1391/1517;
x2=0:d:1390;
yi=interpln([x;y],x2);
x3=0:1516;
plot2d(x3',yi',[3],"000");