Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Create linear spaced vector?

Reply
Thread Tools

Create linear spaced vector?

 
 
kjm
Guest
Posts: n/a
 
      12-17-2004
Hi Everyone,

I am trying to port some old MatLab code to python, and am stuck on
how to accomplish something.

I am trying to write a generalized function that will create a
linearly spaced vector, given the start and end point, and the number
of entries wanted.

In MatLab I have this function that I wrote:

Code:
function out = linearspace(x1,x2,n)

out = [x1+ (0:n-2)*(x2 - x1)/(floor(n)-1) x2];

return

I have the numeric package, numarray installed, and I think it should
be accomplished easily, but I just can't seem to get the syntax
correct with python.

Any tips would be greatly appreciated.


Thanks
 
Reply With Quote
 
 
 
 
Grant Edwards
Guest
Posts: n/a
 
      12-17-2004
On 2004-12-17, kjm <> wrote:

> I am trying to write a generalized function that will create a
> linearly spaced vector, given the start and end point, and the number
> of entries wanted.


>>> from scipy import *
>>> mgrid[0.0:10.0:5j]

array([ 0. , 2.5, 5. , 7.5, 10. ])

--
Grant Edwards grante Yow! Is this where people
at are HOT and NICE and they
visi.com give you TOAST for FREE??
 
Reply With Quote
 
 
 
 
John Hunter
Guest
Posts: n/a
 
      12-17-2004
>>>>> "kjm" == kjm <> writes:

kjm> Hi Everyone, I am trying to port some old MatLab code to
kjm> python, and am stuck on how to accomplish something.

kjm> I am trying to write a generalized function that will create
kjm> a linearly spaced vector, given the start and end point, and
kjm> the number of entries wanted.

kjm> In MatLab I have this function that I wrote:

kjm> [code]

kjm> function out = linearspace(x1,x2,n)

in matlab the builtin function to accomplish this is "linspace"

The python package matplotlib defines a host of matlab compatible
functions, including linspace

def linspace(xmin, xmax, N):
if N==1: return xmax
dx = (xmax-xmin)/(N-1)
return xmin + dx*arange(N)


Note that matplotlib extends the Numeric/numarray core of matlab
compatible functions (defined in MLab) to include plotting functions

http://matplotlib.sourceforge.net

A listing of matlab compatible functions is provided at
http://matplotlib.sourceforge.net/matplotlib.pylab.html


JDH

 
Reply With Quote
 
Adam DePrince
Guest
Posts: n/a
 
      12-17-2004
On Fri, 2004-12-17 at 13:39, kjm wrote:
> Hi Everyone,
>
> I am trying to port some old MatLab code to python, and am stuck on
> how to accomplish something.
>
> I am trying to write a generalized function that will create a
> linearly spaced vector, given the start and end point, and the number
> of entries wanted.
>
> In MatLab I have this function that I wrote:
>
>
Code:
> 
> function out = linearspace(x1,x2,n)
> 
> out = [x1+ (0:n-2)*(x2 - x1)/(floor(n)-1) x2];
> 
> return
> 
> 
>
>
>
> I have the numeric package, numarray installed, and I think it should
> be accomplished easily, but I just can't seem to get the syntax
> correct with python.
>
> Any tips would be greatly appreciated.
>
>
> Thanks


Is this want you want?

#!/usr/bin/python

def linear_space( start, end, count ):

""" Returns a vector containing count evently spaced intervals
(count + 1 evenly spaced points) """

delta = (end-start) / float(count)
return [start,] + \
map( lambda x:delta*x + start, range( 1, count ) ) + [end, ]

if __name__ == "__main__":
print linear_space( 1.0, 2.0, 10 )

Running it gives you:
[1.0, 1.1000000000000001, 1.2, 1.3, 1.3999999999999999, 1.5,
1.6000000000000001, 1.7000000000000002, 1.8, 1.8999999999999999, 2.0]



Adam DePrince


 
Reply With Quote
 
kjmacken@gmail.com
Guest
Posts: n/a
 
      12-17-2004
Thanks for the code snippets guys. Exactly what I needed to get going.

I knew I could get the solution from matplotlib, but getting it
installed using Fink (OS X) has been giving me a headache, so I thought
I could just write my own function for now to get a small piece of code
written....

The help is greatly appreciated.

kjm

John Hunter wrote:
> >>>>> "kjm" == kjm <> writes:

>
> kjm> Hi Everyone, I am trying to port some old MatLab code to
> kjm> python, and am stuck on how to accomplish something.
>
> kjm> I am trying to write a generalized function that will create
> kjm> a linearly spaced vector, given the start and end point, and
> kjm> the number of entries wanted.
>
> kjm> In MatLab I have this function that I wrote:
>
> kjm> [code]
>
> kjm> function out = linearspace(x1,x2,n)
>
> in matlab the builtin function to accomplish this is "linspace"
>
> The python package matplotlib defines a host of matlab compatible
> functions, including linspace
>
> def linspace(xmin, xmax, N):
> if N==1: return xmax
> dx = (xmax-xmin)/(N-1)
> return xmin + dx*arange(N)
>
>
> Note that matplotlib extends the Numeric/numarray core of matlab
> compatible functions (defined in MLab) to include plotting functions
>
> http://matplotlib.sourceforge.net
>
> A listing of matlab compatible functions is provided at
> http://matplotlib.sourceforge.net/matplotlib.pylab.html
>
>
> JDH


 
Reply With Quote
 
John Hunter
Guest
Posts: n/a
 
      12-17-2004
>>>>> "kjmacken" == kjmacken <> writes:

kjmacken> Thanks for the code snippets guys. Exactly what I
kjmacken> needed to get going. I knew I could get the solution
kjmacken> from matplotlib, but getting it installed using Fink (OS
kjmacken> X) has been giving me a headache, so I thought I could
kjmacken> just write my own function for now to get a small piece
kjmacken> of code written....

Yes, matplotlib fink installs have frustrated many an OSX user. Note
that the matplotlib.mlab package (where linspace and others functions
reside) do not require any extension code and can be reused anywhere
you like as python code by copying and pasting, etc.

Also, Robert Kern is in the process of building an "enthon" package
for OSX that has most of the utilities for scientific computing
including matplotlib built-in. Batteries included on steroids,
basically.

http://www.scipy.org/wikis/featurerequests/MacEnthon

So keep your eyes on that site for release information.

JDH
 
Reply With Quote
 
kjmacken@gmail.com
Guest
Posts: n/a
 
      12-17-2004
John,

Thanks for the heads up RE: scipy, I will keep my eyes on the
developments.

Also, thanks for the info:

Quote:
that the matplotlib.mlab package (where linspace and others functions
reside) do not require any extension code and can be reused anywhere
I was able to get these modules into my site-packages directory, and
make use of what is there.

Cheers,

kjm

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Code for linear congruences, diophantine linear equations alessandra_cabrini@virgilio.it Java 1 11-15-2005 12:23 PM
HTML seems double-spaced VB Programmer ASP .Net 4 06-09-2004 05:32 PM
Re: JTextArea text is double-spaced? Thomas Weidenfeller Java 2 07-17-2003 03:06 PM
Re: JTextArea text is double-spaced? bad_knee Java 2 07-14-2003 05:23 PM
Re: JTextArea text is double-spaced? bad_knee Java 0 07-13-2003 10:24 PM



Advertisments