Brian Blais wrote: > Hello, > > In my attempt to learn python, migrating from matlab, I have the > following problem. Here is what I want to do, (with the wrong syntax): > > from numpy import * > > t=arange(0,20,.1) > x=zeros(len(t),'f') > > idx=(t>5) > tau=5 > x[idx]=exp(-t[idx]/tau) # <---this line is wrong (gives a TypeError) > > #------------------ > > what is the best way to replace the wrong line with something that > works: replace all of the values of x at the indices idx with > exp(-t/tau) for values of t at indices idx? > > I do this all the time in matlab scripts, but I don't know that the > pythonic preferred method is. > > > > thanks, > > bb > >
You're specifying the type of x but not of t. You need to change the line where you assign t to: t = arange(0, 20, .1, 'f') I'm not sure why it doesn't figure that own on its own (since it obviously does hold floats), but this does cause it to work. -Kirk McDonald -- http://mail.python.org/mailman/listinfo/python-list