Slashdot Mirror


MATLAB Programming Contest Winner Announced

gooru writes "The MATLAB programming contest winner has been announced. It is a semi-annual programming contest organized by the MathWorks. What makes the contest truly interesting is the final phase is open source. Contestants may submit as many entries as they want and can tweak other entries."

20 of 224 comments (clear)

  1. Comment removed by account_deleted · · Score: 5, Informative

    Comment removed based on user account deletion

  2. Re:Down with MATLAB by Daniel+Dvorkin · · Score: 4, Informative

    I do as much as possible of my work (bioinformatics) in Numerical Python. It's really nice to have the power of a general-purpose programming language as well as a numerical feature set that has equivalents for nearly every special-purpose MATLAB function I've ever needed. YMMV.

    --
    The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  3. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  4. Re:contests... octave.. by AnObfuscator · · Score: 2, Informative

    On debian, apt-get search octav to see octave and extensions. Don't forget to install the additions octave-forge, etc. to get near-complete matlab equivalence. In some ways, it exceeds matlab, in some ways, it doesn't. And it is very compatible with matlab.

    Octave has also been ported to MacOS X, and is available via Fink.

    I agree, I have found octave *very* compatible; in my Quantum Mechanics class, we have frequent Matlab assignments, and I am able to cut/paste code directly between the systems, with no errors so far (but there was one Octave rendering bug with multiplot).

    I don't know how Octave/Matlab stack up performance-wise for professional use, but for student use, it is ideal.

    --
    multifariam.net -- yet another nerd blog
  5. Try Sci-Lab by reporter · · Score: 5, Informative
    Try Sci-Lab. Its functionality is about 1 order of magnitude greater than that of Octave. Sci-Lab has an extensive library of signal processing functions that equal the capability of Matlab.

    I use Sci-Lab regularly. With Sci-Lab, I have no need to dole out bucks for the commercial version: Matlab.

  6. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  7. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  8. The Problem by HillaryWBush · · Score: 5, Informative

    Imagine a sandbox in which there are ants, sugar cubes, anthills, and rocks. Ants like sugar: collectively they want to bring as many sugar cubes as possible back to their anthills before sunset.

    For this contest, you will write the control program that each ant carries with it. Ants, being so small, have some limitations, of course. Each ant can carry no more than one sugar cube at a time. Further, each ant can only see her local vicinity. Your program, which is run sequentially for each ant, knows only what that ant knows. Thus you must bring about the best possible global outcome based only on local conditions. The ants don't have any memory as such, but they can leave behind a chemical trail to guide themselves and others across the sandbox landscape.

    Your score is determined by how much progress you make moving food towards and into the anthills. Ideally your ants will move all the sugar cubes onto anthills. Practically this may not be possible; do the best you can. You receive credit even by moving one sugar cube one step closer to an anthill.

  9. familiar contest with ants . . . by bodrell · · Score: 2, Informative
    I read in Scientific American not long ago about using the (software) ant strategy to find a solution to the traveling salesman problem, or something in that family of problems. I think it was lumped together with swarm technology, but I don't have the magazine with me, so I can't be more specific than that. I do know that DNA "computers" have been used to solve such combinatorial problems. This sugar cube problem is very similar--no exact solution, but you can converge on something close to exact.

    Anyway, you want to find the shortest route that goes through n number of cities. I know in one variation of the problem you can't hit the same city twice, but I don't know if that constraint applied in this case. The ants leave a "pheremone trail" which evaporates after a certain amount of time. If the ants start out randomly choosing routes, but over time the routes with more software pheremone are reinforced, because the ant objects choose those paths preferentially.

    --
    Si la vida me da palo, yo la voy a soportar Si la vida me da palo, yo la voy a espabilar
  10. Can't get engineers to use anything else by Latent+Heat · · Score: 3, Informative
    After an entire semester introducing a framework to do certain numerical computations in Java, and explaining that most of the Matlab functions are implemented in Fortran, C/C++, and more recently Java and that Matlab is really just a way of scripting numerical algorithms written in those other languages, students go off and do their semester project in Matlab.

    Matlab is the Visual Basic of numerical computing -- a hodge-podge of grafted-on features. Yes, it gets a job done, yes it promotes code reuse because of the extensive numerical and graphing libraries, but as a "teaching language" it is weak on important concepts, and it is proprietary as all anything, turning engineering colleges into trade schools for MathWorks. And once engineering students glom on to it, you cannot, just cannot get them to use anything else.

    I don't care if they implement a numerical algorithm in C++ or if they implement a numerical algorithm in Java -- both of those languages are pretty much callable from anything else on a wide variety of platforms. Yeah, you can call into Matlab too, but is there a free runtime you can download like with Java? And any kind of numerical algorithm using looping instead of built-in vector operations is going to be dog slow, so it is useless for any "production" use (in an academic environment, production use is where you throw a problem at it that taxes the capacity of whatever generation computers you have -- otherwise it is a toy numerical problem where everything you can discover with it has already been done.)

  11. Re:When did Matlab become commercial? by Camel+Pilot · · Score: 3, Informative

    Yes you missed something. Matlab sells software subscriptions for around $2k per year and extra for application specific modules - I would call that commercial.

    They ticked me off last year when we late for our subscription payment and they charged us 20% for an adminstration fee which accounted for around $3500.

    This is why I read above about SciLab with interest. I would love to find a solution that meets our needs so can cancel our subscription and hopeful convince others where I work to convert.

    Mathworks has achieved a sort of monopolist position with certain engineering and scientific fields and behaves accordingly

  12. Re:Down with MATLAB by Daniel+Dvorkin · · Score: 2, Informative

    Care to explain how numpy is better than matlab? I'm not trolling, I'm actually about to start numerical processing for my research, and I'm stuck on the fence between using matlab (which we have on all our lab computers) and python, which i'd have the luxury of doing at home since it's free. i barely know either one, so i don't really have any loyalty to either side yet.

    Basically, I like numpy because it's Python, and I like Python. More generally, I like having a general-purpose programming language when I'm writing real programs. MATLAB is good at crunching numbers and nothing else; numpy is almost as good (and in my experience, often faster) at crunching numbers, and it's also good at everything else Python is good at. String handling, DBI, and any data structure more complex than matrices, to name the examples I deal with most, are just unbelievably painful in MATLAB, IMO, but they're unbelievably easy in Python/numpy.

    --
    The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  13. Comment removed by account_deleted · · Score: 2, Informative

    Comment removed based on user account deletion

  14. Comment removed by account_deleted · · Score: 4, Informative

    Comment removed based on user account deletion

  15. Re:contests... octave.. by fireboy1919 · · Score: 4, Informative

    A lot of these items are FUD.
    1) You can choose any editor you want to write your matlab code. You just need to run it in octave. Since octave has a command line interpreter, you can show the result with any editor that can display the results of a run command (emacs will do this, too)
    2) Yeah...it has readline, but that's about it.
    3) Poster asked, besides being free...this is part of the price.
    4) Not true. Any code not written in C, which is a good many of the numerical algorithms Matlab includes, have available source so that you can integrate the algorithms into any finished products (Matlab is for prototyping).

    Other than that, you're asking for more than is really needed to extend the functionality.
    5) Octave has a code repository. If they like what you write they use it. In other words, you can contribute to Octave.

    6) Your fault/FUD. It took me about ten minutes.

    7) I didn't have to. More FUD? Obviously this isn't a universal procedure.

    8) I've never looked at my License file. I never track what it's doing. This has never been an issue.

    9) See issue #3

    10) Is this even a reason?

    11) See issue #4

    12) Obviously you don't have very good reasons. I will present some good reasons after we get through this.

    13) This is true of Matlab as well. Try typing "ls" in Matlab and see what happens.

    14) See issue #3

    Having said all that, let me tell you why you should be using Octave.

    The biggest reason is the free as beer thing. Matlab+ all packages needed is astronomically expensive. It's a big deal. We're not talking Microsoft-who-sells-to-consumers expensive - we're talking big-contractors-who-work-for-Engineering-firms expensive. It's kind of like the difference in price between Oracle and Postgres.

    However, SOMETIMES it's worth it. As an Engineering student, I've tried and used regularly Matlab's image toolbox, Matlab's neural net toolbox, and their symbolic toolbox, and compared it to the normal canned algorithms.

    Matlab is very, very good. They put an extra polish on every algorithm they write. In general, they're better written, and produce more clever results than anything else. Keep in mind that I was dealing with underconstrained problems, so the issues where matters of estimation. Matlab got more accuracy or faster convergence out of it's canned algorithms than you'd get if you wrote them straight from the descriptions supplied by the algorithm's authors.

    Having said that, it's quite likely that there are certain areas that Octave will probably eventually fall behind. Symbolic work is one, I think, since their symbolic toolbox is actually an interface to Maple's symbolic engine, which they rent.

    Maple doesn't have the manpower to compete with the OSS people writing computer algebra systems. IMHO, right now it's about tied. Three years ago Maple was ahead.

    --
    Mod me down and I will become more powerful than you can possibly imagine!
  16. Re:Does one of the entries... by headhot · · Score: 3, Informative

    um.. i=0:1:10.
    Or do you mean address the first element with 0? Who cares if you start with zero, get used to it and move on.

    If you use Matlab in a Unix enviornment ^c works.

  17. *Do* use Python, but get the distro from Enthought by Anonymous Coward · · Score: 1, Informative

    If you're considering any sort of numerical or scientific work with Python on MS windows, get the "Enhanced Python Distribution" from Enthought.

    http://www.enthought.com/downloads/downloads.htm

    It's Python 2.3.3 with all the major numerical and scientific libraries included. The only thing "missing", IMHO, is the excellent matplotlib plotting library.

    http://matplotlib.sourceforge.net/

  18. State of the art of plotting with Python by Anonymous Coward · · Score: 2, Informative

    """and yes, plotting is pretty bad -- py-gnuplot is the best available"""

    No at all. matplotlib is the current leader with excellent high-level functions in both an object oriented API and a MATLAB-alike functional API. Figures are rendered on screen with an interactive pan-zoom viewer or to a variety of a variety of file formats (ps, png, ...) by using your choice from a variety of backend renderers.

    http://matplotlib.sourceforge.net/

    If you only need to render to file then the quality of PyX's output is unmatched. It includes very high level functions for common graphics operations and exposes much of LaTeX and PostScipt in case you need to do something detailed or unusual.

    http://pyx.sourceforge.net/examples/graphs/index.h tml

  19. Re:contests... octave.. by NoOneInParticular · · Score: 1, Informative
    A small thing really, but one I like nevertheless: octave(-forge) supports the c-style += *= .*= /= ./= etc. operators. Thus when you have to do the clumsy

    very_long_identifier = very_long_identifier + 1;

    in matlab, octave allows you to write it as:

    very_long_identifier += 1;

    All in all, I feel that octave has evolved more into improving the basic language itself, while matlab has put most effort into gimmicks such as GUI-building and (poor/slow) OO-support.

  20. Netlab instead ? by garyebickford · · Score: 2, Informative

    In my Machine Learning class at Portland State U, we've been using the Netlab toolbox from Aston University Neural Computing Research Group, which is a set of Matlab libraries and programs. I haven't used Matlab's own neural network tools or done any of this stuff in my working life, but NetLab is at least a good learning tool, and is itself GPL.

    Several people in the class have speculated how much work it would require to port NetLab to Octave, but AFAIK nobody's actually taken a look. I downloaded it to my linux box but haven't tried to do anything yet myself.

    From the Netlab page: "The Netlab library includes software implementations of a wide range of data analysis techniques, many of which are not yet available in standard neural network simulation packages. Netlab works with Matlab version 5.0 and higher but only needs core Matlab (i.e. no other toolboxes are required). It is not compatible with earlier versions of Matlab."

    --
    It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/