我有以下數據預測兩條曲線中間有不同方程和數據的曲線。我還需要對中間的曲線進行樣條曲線曲線 我試過在stackoverflow中搜索其他代碼,但這是最接近正確的解決方案。到目前爲止,兩條曲線的曲線是正確的,但插值點給了我錯誤的曲線。plot在matlab中的2種不同類型的曲線之間插入一條曲線
假設(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-');
我建議你看看這個問題(和答案):[兩條曲線之間的插值](http://stackoverflow.com/questions/23494254/interpolation-between-two-curves-matlab/23497688#23497688) – Hoki
已經在那裏,並嘗試使用thos我的數據e代碼,但會生成差異結果。我只需要解決上面的代碼,因爲到目前爲止,這個解決方案是最接近我的問題。 – user183060