Hi Ben,

  I was working on some other things and have finally gotten a chance to get
back to this. I changed the for loops to

for i in range(nplots):
    for n in range(plotgap):
        t = t+dt
        w = (D*v)
        vnew = vold-2*dt*c*w
        vold = v
        v = vnew
    data[i,:] = v[0,:]
    tdata = vstack([tdata, t])    

But I still get the same error as in my original post.

Khary


surfcast23 wrote:
> 
> I will try initializing starting at 0
> 
> Benjamin Root-2 wrote:
>> 
>> On Sun, Jul 1, 2012 at 12:50 PM, surfcast23 <surfcas...@gmail.com> wrote:
>> 
>>>
>>> Hi,
>>>   I am translating a Matlab code to python and get the following error
>>> when
>>> the codes reaches the plotting section
>>>
>>> Warning (from warnings module):
>>>   File "C:\Documents and Settings\My Documents\PHYSICS\Wave-eqn.py",
>>> line
>>> 40
>>>     w = (D*v)
>>> RuntimeWarning: overflow encountered in multiply
>>> Traceback (most recent call last):
>>>   File "C:\Documents and Settings\My Documents\PHYSICS\Wave-eqn\.py",
>>> line
>>> 50, in <module>
>>>     ax.plot_wireframe(x,tdata,data, rstride=10, cstride=10)
>>>   File "C:\Python32\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py",
>>> line
>>> 906, in plot_wireframe
>>>     tylines = [tY[i] for i in cii]
>>>   File "C:\Python32\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py",
>>> line
>>> 906, in <listcomp>
>>>     tylines = [tY[i] for i in cii]
>>> IndexError: index out of bounds
>>>
>>> My code
>>>
>>> import numpy as np
>>> from numpy import *
>>> from math import  pi
>>> from scipy.linalg import toeplitz
>>> from scipy.special import cotdg
>>> from mpl_toolkits.mplot3d import axes3d
>>> import matplotlib.pyplot as plt
>>>
>>>
>>>
>>> N = 512
>>> h = 2*np.pi/N
>>> x = h*(np.arange(N) + 1)
>>> t = 0
>>> dt = h / 4
>>> a = .1
>>> tmax = 15;
>>> tplot = .15;
>>> nplots = int(round((tmax/tplot)));
>>> plotgap = int(around(tplot/dt));
>>> c = a + np.sin(x - 1)**2
>>> v = np.exp(-100 * (x - 1)**2)
>>> vold = np.exp(-100 * (x - a*dt - 1)**2)
>>>
>>> #i = np.arange(1, N)
>>> #column = np.hstack([0, .5 * (-1**i) * cotdg(i * h/2)])
>>> #D = toeplitz(column, -column)
>>>
>>> column = ((0.5*(-1)**arange(1,N+1))*cotdg(arange(1,N+1))*(h/2));
>>> D = toeplitz(column,-column);print(D.shape);
>>>
>>> k = np.zeros(((nplots,N))); print(v.shape);print(k.shape);
>>> data = np.concatenate((v.reshape((512,1)).transpose(), k))#data =
>>> np.concatenate((v, k),axis = 1);
>>> #data = np.vstack([v,k]);
>>> tdata = t;
>>>
>>> for i in range(1,nplots+1):
>>>     for n in range(1,plotgap+1):
>>>         t = t+dt
>>>         w = (D*v)
>>>         vnew = vold-2*dt*c*w
>>>         vold = v
>>>         v = vnew
>>>     data[i,:] = v[0,:]
>>>     tdata = vstack([tdata, t])
>>>
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111, projection='3d')
>>> #X, Y, Z = axes3d.get_test_data(0.05)
>>> ax.plot_wireframe(x,tdata,data, rstride=10, cstride=10)
>>>
>>> plt.show()
>>>
>>> I looked at the error line and it seems as if the y axes is where the
>>> problem is, but I am not seeing why and would appreciate any help. Thank
>>> you!
>>>
>> 
>> numpy arrays are indexed starting at 0, not 1.  So when you populate your
>> "data" array with "data[i,:] = v[0,:]", and "i" only goes from 1 to
>> nplots,
>> data[0,:] is left completely uninitialized (unless it is being done by
>> some
>> of your pre-for-loop code, which is confusing to understand.)
>> 
>> What I can tell you is that the error isn't in plot_wireframe() as much
>> as
>> the error exist with the inputs to plot_wireframe().  Perhaps the shapes
>> aren't right or something.  I will try and look at your code closer
>> tomorrow and see if I can figure it out, but I suggest double-checking
>> those arrays.
>> 
>> Cheers!
>> Ben Root
>> 
>> ------------------------------------------------------------------------------
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and 
>> threat landscape has changed and how IT managers can respond. Discussions 
>> will include endpoint security, mobile security and the latest in malware 
>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/IndexError%3A-index-out-of-bounds-tp34098663p34237855.html
Sent from the matplotlib - users mailing list archive at Nabble.com.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to