Search Results

Search found 2 results on 1 pages for 'lmo'.

Page 1/1 | 1 

  • SciPy interp1d results are different than MatLab interp1

    - by LMO
    I'm converting a MatLab program to Python, and I'm having problems understanding why scipy.interpolate.interp1d is giving different results than MatLab interp1. In MatLab the usage is slightly different: yi = interp1(x,Y,xi,'cubic') SciPy: f = interp1d(x,Y,kind='cubic') yi = f(xi) For a trivial example the results are the same: 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 Python: interp1d([1,2,3,4],[1,2,3,4],kind='cubic')([1.5,2.5,3.5]) array([ 1.5, 2.5, 3.5]) But for a real-world example they are not the same: 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) Matlab: -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]]) Any thoughts as to how to can get results that are consistent with MatLab?

    Read the article

  • Faster way to convert from 24 bit wav pcm format to float?

    - by LMO
    I need to read data in from a wav file in 24 bit pcm format, and convert to float. I'm using Python 2.7.2. The wave package reads the data in as a string, so what I've tried is: # read in entire wav file wdata = f.readframes(nFrames) # unpack into signed integers and convert to float data = array.array('f') for i in range(0,nFrames*3,3): data.append(float(struct.unpack('<i', '\x00'+ wdata[i:i+3])[0])) # normalize sample values data = data / 0x800000 This is quite a bit faster than my earlier approaches, but still quite slow. Can anyone suggest a more efficient method?

    Read the article

1