The where command basically find the data in the square around the point cnstl[j].

Let the data array is qam with size N

Out = X

error = X

for i in arange(N):

for j in arange(L):

aa = np.where((real(X)<real(cnstl[j])+1) & (real(X)>real(cnstl[j])-1) & (imag(X)<imag(cnstl[j])+1) & (imag(X)>imag(cnstl[j]-1))

Out[aa]=cnstl[j]

error[aa]=abs(X)**2 - abs(cnstl[j])**2

Thanks

Frank

> Date: Wed, 28 Jan 2009 23:57:16 -0600

> From: robert.kern@gmail.com

> To: numpy-discussion@scipy.org

> Subject: Re: [Numpy-discussion] help on fast slicing on a grid

>

> On Wed, Jan 28, 2009 at 23:52, frank wang <f.yw@hotmail.com> wrote:

> >

> > Hi,

> >

> > I have to buidl a grid with 256 point by the command:

> > a = arange(-15,16,2)

> > L = len(a)

> > cnstl = a.reshape(L,1)+1j*a

> >

> > My problem is that I have a big data array that contains the data round the

> > points in cnstl. I want to slice the point to the closest cnstl point and

> > also compute the error. The condition is in the middle of the two point in x

> > and y axis. I can do it in a for loop. Since Python and numpy have a lot of

> > magic, I want to find an efficient way to do. This problem arise from QAM

> > 256 modulation.

>

> Can you show us the for loop? I'm not really sure what you want to compute.

>

> --

> Robert Kern

>

> "I have come to believe that the whole world is an enigma, a harmless

> enigma that is made terrible by our own mad attempt to interpret it as

> though it had an underlying truth."

> -- Umberto Eco

> _______________________________________________

> Numpy-discussion mailing list

> Numpy-discussion@scipy.org

> http://projects.scipy.org/mailman/listinfo/numpy-discussion

Windows Live™: E-mail. Chat. Share. Get more ways to connect. See how it works.