【发布时间】:2016-12-06 07:12:35
【问题描述】:
我有以下数据预测两条曲线中间的曲线,它有不同的方程和数据。我还需要对中间曲线的曲线进行样条曲线和平滑处理 我尝试在 stackoverflow 中搜索其他代码,但这是最接近正确的解决方案。到目前为止,两条曲线的图是正确的,但插值点给了我错误的图。
鉴于 (a25,vel25)=25 和 (a50,vel50)=50,我试图找到 val=30 的图。请帮我排除故障并获取生成的插值曲线的数据表 (x,y)。谢谢你的帮助 generated plot using this program
a50=[1.05
0.931818182
0.931818182
0.968181818
1.045454545
1.136363636
1.354545455
1.568181818
1.718181818
1.945454545
2.159090909
2.454545455
2.772727273
];
vel50=[0.85
0.705555556
0.605555556
0.533333333
0.472222222
0.45
0.427777778
0.45
0.477777778
0.533333333
0.611111111
0.711111111
0.827777778
];
a25=[0.5
0.613636364
0.686363636
0.795454545
0.918181818
0.963636364
1.090909091
1.236363636
1.304545455
1.431818182
1.545454545
1.659090909
1.818181818
];
vel25=[0.425555556
0.354444444
0.302222222
0.266666667
0.233333333
0.226666667
0.211111111
0.222222222
0.237777778
0.266666667
0.311111111
0.35
0.402222222
];
plot(a25,vel25,'b-');
hold on
plot(a50,vel50,'g-');
minX = min([a25 a50]);
maxX = max([a25,a50]);
xx = linspace(minX,maxX,100);
vel25_inter = interp1(a25,vel25,xx);
vel50_inter = interp1(a50,vel50,xx);
val = 30; % The interpolated point
interpVel = vel25_inter + ((val-25).*(vel50_inter-vel25_inter))./(50-25);
plot(xx,interpVel,'r-');
【问题讨论】:
-
我建议你看看这个问题(和答案):Interpolation between two curves
-
已经在那里并使用这些代码尝试了我的数据,但它会产生差异结果。我只需要对上面的代码进行故障排除,因为到目前为止,这个解决方案最接近我的问题。