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");
结果图
外推法
我认为您正在考虑外推,因为它在已知测量值之外而不是介于两者之间。
问题是如何"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");
我有一个包含 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");
结果图
外推法
我认为您正在考虑外推,因为它在已知测量值之外而不是介于两者之间。
问题是如何"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");