calculating on matrix indices
Kirk McDonald
mooquack at suad.org
Thu Feb 16 20:36:47 EST 2006
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
More information about the Python-list
mailing list