Slashdot Mirror


Mathematica vs. Matlab?

Ninnux asks: "I wanted to find out from the community which was the better mathametics modeling package: Mathematica or Matlab. The cancer center I research and program for is considering purchasing a license set. I'll be working with Bayesian machine learning and other bioinformatic approaches for hormone pathway modeling. I know Matlab has various toolboxes that would be rather useful, but I'd like to hear what people think." While I'm sure direct comparisons will be made, I think focusing on the specific niche will help Ninnux the most; so, how well does each piece of software handle Bayesian functions and other bioinformatic computations?

7 of 37 comments (clear)

  1. Mathematic and Maple vs. Matlab by jbolden · · Score: 5, Informative

    Mathematica and Matlab are very different products. Mathematica focuses on quality symbolic computation and features like unlimited precision arithmetic. Matlab focuses on high speed algorithms for numerical computation.
    Maple is a similar product to mathematica.

    So really the question is would you rather have faster numerical processing or greater symbolic capacity?

  2. Well.... by ByronEllis · · Score: 3, Informative

    Matlab is probably more useful to you than Mathematica since you'll be working with simulations and/or data it sounds like. You might also want to check out R, which is designed as a statistical analysis environment and has a large number of packages---including machine learning and whatnot. Its also Open Source and GPL if you care about that sort of thing and runs on pretty much any platform you could potentially care about.

  3. Maple 8 by Euzechius · · Score: 2, Informative

    At out university ( Kuleuven (Belgium) ) we always use Maple. It's a pretty complete mathematical application. It's about the same as Mathematica (a bit easier). I think we use it instead of other software because of the lower licensing fees involved.

  4. Matlab vs. Mathematica by Salis · · Score: 3, Informative

    I've used both and I usually prefer Matlab over Mathematica, although I started using Matlab first so that could be a bias.

    Here's my breakdown of the main differences (to me):

    Matlab is great for numerical simulation of _anything_. It offers the ability to go very quickly from model developement to programming and implementation to analyzing the results. Matlab has a very good GUI creator and offers _very_ good ordinary and partial differential equation solvers. Matlab's programming language is very similiar to C/C++ and it has the ability to link with C/C++ programs.

    Matlab's original use was for the quick calculation of Matrix algebra. (MATrix LAB) You can do a lot with matrice algebra and matrix operators. If your application uses matrices, matlab will speed up the processing and computation by quite a bit, which includes ODEs and PDEs.

    Mathematica, I found, has a slightly higher learning curve because of the symbolic language syntax. It can analytically solve very complex problems and display the results graphically pretty easily.

    Matlab seems to have more additions in the form of modules that come with the professional version. The source code for all matlab functions and modules are viewable, making modification of the modules/core functions possible.

    Honestly, I haven't had as much experience with Mathematica, but I find that most research groups choose matlab for numerical solutions/simulations and mathematica for analytical solutions.

    The best way to make an intelligent choice is to pick up/browse Wolfram's book on mathematica (he created it) and the latest Using Matlab manual. Just remember that Matlab also contains about two dozen extra toolboxes/modules that were created by research groups for specific purposes. There is a neural network toolbox, if I remember, although I don't know if it's applicable to Bayesian networks.

    Salis

    --
    Favorite /. tagline: "On the eighth day, God created FORTRAN." And it was good.
  5. Comparisons of Mathematica, Maple, Matlab, etc. by Pingster · · Score: 2, Informative
    Lots of people have talked about this question before. Here are some pointers I found that might be helpful...

    I'm sure there's a lot more; try some Google searches: maple mathematica matlab, maple vs mathematica, "computer algebra" comparison.

  6. Mathematica|Maple vs Matlab == Theory vs Practice by mstrcat · · Score: 2, Informative

    As a graduate student, I use all three packages on a frequent basis. Here is a quick decision tree that models how I decide which to use:
    1) Is the problem symbolic or numeric?
    numeric -> Matlab
    symbolic -> Mathematica
    symbolic & pretty graphs needed -> Maple

    2) Do I need to write a program to do the calculations?
    yes -> matlab
    no -> any

    Matlab has a great debugger. you can step through your program single step, into/out of sub programs, or until breakpoint. Mousing over a variable displays it's current value. I find it so useful, that even if I'm doing something in C/C++, I will write most of it in Matlab just to use the debugger, then cut/paste the routines into the project.
    Matlab also has very good low-level read/write routines for reading data into it. This can be a huge plus if you need to automate your data input. Matlab is very well supported for collecting data from many types of devices, rather than typing everything in by hand.

    3) Am I analyzing numbers to discover new relationships or applying data to known formulas/algorithms?
    Discover New -> Complex -> Maple
    -> Simple -> Matlab
    data into formula -> Matlab
    Matlab has very good data fitting for standard curves (polynomial, exponential, trig). I find it just general enough to be what I need in 99% of the time. Maple is a wiz at finding symbolic fits to data with complex relationship, but is much more difficult to use.

    As you can see, I end up using Matlab for about 95% of my work. Between it's easy programablity, shallow learning curve, simularity to C (you can literally copy the guts of a c/c++ program, use search and replace to correct the operators, and have it run in matlab). With the symbolic tool box it nearly equals Maple for symbolic power (it actually uses the Maple symbolic engine, go figure), and the debugger is top-notch. Matlab has very good documentation, and great electronic documentation. It has above average support from the company, and the matlab newsgroup is active and generally produces intelligent solutions/comments. There are any number of 3rd party books written about matlab (the best, imho, is Mastering Matlab) to help as well.

    As for your license strategy, I'd suggest a site license for Matlab and a small number of Maple licenses for people that actually do the symbolic computation (if anyone). Giving everyone access to Matlab makes it easy to share work, share graphs, ect.

  7. MATLAB shall inherit the earth by sandwichmaker · · Score: 2, Informative

    now that I have your attention.
    I have been using matlab for almost exactly an year now and my primary occupation is doing various kinds of machine learning and computer vision related stuff. I have used Mathematica for doing simulations of chemical reactors in the past, so I have some experience with it.

    If you are going to deal with experimental data, and your needs include lots of data visualization MATLAB is truly the way to go. People who like to refer to matlab as just another matrix language miss the point. Just about anyone can put a interpreter around LAPACK and give you a matrix language. What makes MATLAB so popular and powerful is the availability of very high quality libraries and the fantastic visualization tools that come with MATLAB. It is a good idea to invest in a good set of toolboxes when you buy you matlab license. Plus there is a ton of free stuff out there.

    Writing iterative code used to be quite slow, but with the latest MATLAB release mathworks has included a JIT compiler which can convert some not all of your loops to machine code and give you quite a bit of speedups.

    The C interface is clean, and very easy to learn. You can add existing C libraries or write new code and integrate it into your matlab setup very quickly.

    The matlab programming language itself has an extremely powerful syntax. You will be surprised how much you can do in a line of matlab code.

    Finally, if you need to do symbolic computations, there is the symbolic computations toolbox, which I as far as I recall is a wrapper around a maple interpreter, so you have the full power of maple available in MATLAB. I have used it and its pretty good.

    My experience with Mathematica suggests that unless you are going to deal with mathematical structures, and do a lot of symbolic computation in particular, you are better of using like MATLAB.