[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: speed comparison of IDL, numPy, Matlab

Nathaniel Gray wrote:
> Paul van Delst wrote:
> > I've never used Python, and Matlab only once or twice, but what's with the
> > Python syntax? Seems a tad wordy. Looks like Nick Bower's IDL-like package
> > in Python (http://nickbower.com/computer/pydl) is worth another look
> > though......
> On the flipside, have you ever tried to write user interfaces in Matlab?

Nope, but I know people that have produced *amazing* (let me re-emphasize amazing) things
in Matlab in a very short time. One guy back at UW-Madison produced code that interfaced
to aircraft measurements of high resolution radiance measurements (i.e. a LOT of data). In
less than a week he churned out a GUI (while doing other things) that allowed the user to
basically fly the plane and map the measurements as you watched. Apart from being
tremendously cool just to sit and watch the thing run, it was also very useful to quickly
look at the entire dataset (did I mention it was HUGE) to pick out interesting spots for
further study. I remember the when I first saw it thinking "how the hell you would do that
in IDL?" I'm sure it's doable, but it would take a looong time (for me at least).

> Have you ever tried to implement a dictionary in Matlab?

I prefer the printed versions :o)  (Not Websters though)

> Have you ever had your Matlab license expire the
> day of a meeting, _before_ you've made your plots?

Nope. But I sympathise. I have that happen with various and sundry compilers though. :o(

> Having used IDL and Matlab quite extensively, I've realized that in any
> moderately complex numerical program 75% of the code is *programming* and
> only 25% of the code is *numerical*.

Wow. You're an efficient data mover. Most of my code is shifting data from one place to
another (thank the gods for netCDF is all I can say). Usually the code that does actual
number crunching is quite small. Or maybe I just do simple stuff. :o) 

Actually, my main use of IDL is protyping code for implementation in Fortran90/95 (for
eventual operational use). I can test different algorithms and plot the results quickly.
To get fortran all I have to do is change the FOR...DO BEGIN's to DO's, the CONTINUE's to
CYCLE's, the BREAKs to EXITs, the [..] to (..), add the variable declarations, etc. It
works out quite well. (Although f90/95 contains array syntax, most compilers still
optimise loop-based array manipulation better, i.e. faster).

> I'd take a great general-purpose
> language with decent numerical extensions over a decent language with great
> numerical capabilities any day of the week, and twice on Sunday. :^)

I don't understand the difference between the two cases above.


Paul van Delst           A little learning is a dangerous thing;
CIMSS @ NOAA/NCEP        Drink deep, or taste not the Pierian spring;
Ph: (301)763-8000 x7274  There shallow draughts intoxicate the brain,
Fax:(301)763-8545        And drinking largely sobers us again.
pvandelst@ncep.noaa.gov                   Alexander Pope.