Re: [Matplotlib-users] IndexError: index out of bounds
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
Re: [Matplotlib-users] IndexError: index out of bounds
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-tp34098663p34109116.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
Re: [Matplotlib-users] IndexError: index out of bounds
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
[Matplotlib-users] IndexError: index out of bounds
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! -- View this message in context: http://old.nabble.com/IndexError%3A-index-out-of-bounds-tp34098663p34098663.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