से अलग हैं I मैटलैब प्रोग्राम को पायथन में परिवर्तित कर रहा हूं, और मुझे समझ में समस्या आ रही है कि क्यों scipy.interpolate.interp1d MatLab interp1 से अलग परिणाम दे रहा है।SciPy interp1d परिणाम MatLab interp1
MATLAB में उपयोग थोड़ा अलग है:
yi = interp1(x,Y,xi,'cubic')
SciPy: MatLab:
interp1([0 1 2 3 4], [0 1 2 3 4],[1.5 2.5 3.5],'cubic')
1.5000 2.5000 3.5000
अजगर
f = interp1d(x,Y,kind='cubic')
yi = f(xi)
एक छोटी सी उदाहरण के लिए परिणाम एक ही कर रहे हैं:
interp1d([1,2,3,4],[1,2,3,4],kind='cubic')([1.5,2.5,3.5])
array([ 1.5, 2.5, 3.5])
लेकिन एक वास्तविक दुनिया उदाहरण के लिए वे ही नहीं हैं:
x = 0.0000e+000 2.1333e+001 3.2000e+001 1.6000e+004 2.1333e+004 2.3994e+004
Y = -6 -6 20 20 -6 -6
xi = 0.00000 11.72161 23.44322 35.16484... (2048 data points)
मैटलैब:
-6.0000e+000
-1.2330e+001
-3.7384e+000
...
7.0235e+000
7.0028e+000
6.9821e+000
SciPy:
array([[ -6.00000000e+00],
[ -1.56304101e+01],
[ -2.04908267e+00],
...,
[ 1.64475576e+05],
[ 8.28360759e+04],
[ -5.99999999e+00]])
मैं कैसे कर सकते हैं के रूप में किसी भी विचार MatLab के साथ संगत परिणाम प्राप्त करें?
संपादित करें: मैं समझता हूँ घन प्रक्षेप एल्गोरिदम जो शायद मतभेद मैं दिखाई दे रही है के लिए खातों के लिए लागू करने में कुछ अक्षांश नहीं है। ऐसा लगता है कि मूल मैटलैब प्रोग्राम जो मैं परिवर्तित कर रहा हूं उसे रैखिक इंटरपोलेशन का उपयोग करना चाहिए था, इसलिए सवाल शायद मूक है।