the battle for hearts and minds

Ray Girvan on the market for Matlab and its clones

The origin of Matlab, the mathematical programming environment from The MathWorks, is a good example of inspired marketing. Cleve Moler promoted the early "classic Matlab" by leaving it on university machines where he had used it to teach linear algebra. This gave it a cult status even before the professional version existed. Since then, Matlab has vastly expanded and diversified to become a popular and standard product for mathematical programming. Yet its estimated 500,000 users worldwide compare to more than a million for Maple, Mathematica or Mathcad. Judging by sales, it could be more popular.

One central market factor is – as with any product – the price. At the time of writing: $1,900 for the commercial Matlab; $2,800 for Simulink; and typically $800 for each toolbox. This makes Matlab the most expensive of the big-name mathematical environments. MathWorks is clearly aware of this and early in 2001 it released the Matlab Student Version Release 12. The first worldwide student edition, at $99, is an inexpensive version of the normal $1,000 academic bundling of Matlab 6, Simulink 4 and the Symbolic Math toolbox. It's sold only to students on degree courses and the licence expires on graduation. Below, Felix Grant explores the practical and market issues.

But a second market factor is the existence of many competing (and generally cheaper) Matlab-like programs. Not all are outright "clones", but all offer the same concept: an interpreted mathematical programming language with matrices as the fundamental data type; simple syntax (i.e. no need to declare or dimension variables); and stored program operations like Matlab's M-files.

In my view, the product most compatible with Matlab (and the one most openly marketed as a competitor) is Harmonic Software's O-Matrix. A Windows program, it integrates a programming language – essentially a structured BASIC – with a development environment comprising a command line and three permanent windows for command history, debugging, and graphics output.

O-Matrix and Mlab
  • Among the clones; O-Matrix and Mlab, two of the many Matlab-like products.

O-Matrix contains hard-coded elementary functions and a library of subroutines (akin to M-files) written in the O-Matrix language. Apart from the obvious matrix operators, these include general mathematical analysis tools; string and file operators; polynomial functions; statistical tools; integral and differential equation solvers; digital filters (a general batch, plus Kalman-Bucy); curve fitting and optimisation tools; 2D and 3D graph plotters; and Fourier and wavelet transforms. For programming support, there's a GUI (Graphic User Interface) builder for setting up user dialogue boxes, and the debugger provides system status listings, breakpoints, watchpoints, and the ability to trace program execution.

I think the most significant upgrade to the current O-Matrix 5.2 is its Matlab mode, which (apart from a few small syntax differences) can run M-files from Matlab 4 without adaptation. Harmonic Software also claims advantages of superior speed and better programming constructs (for instance, multiple data types; more versatile function handling; and greater efficiency in calling C++ or Fortran subroutines at run-time, with standard Windows DLLs rather than Matlab's "MEX-file" system). Interfacing commands can access other Windows programs via the Clipboard and an "omlink" client/server system.

However, some benefits of O-Matrix have been eclipsed by recent Matlab releases. The new multi-windows Matlab, with its own new GUI Builder, is equally convenient for programmers, and the speed gap (Harmonic Software claims that O-Matrix runs M-files "5-10 times faster than Matlab") appears to have narrowed. In Matlab mode I found their own cited benchmark, a linear algebra suite by Stefan Steinhaus, gave similar timings to Matlab 6. Further limitations are the basic wire-frame 3D plots, and the lack of symbolic math handling.

The range of add-ons is still small: an Equity Analysis System; links to Mathematica and the Origin plotting package; a Signal Processing Toolkit; and a Kalman-Bucy Filter visual interface pack. But the capacity to run M-files vastly increases access to existing Matlab code and user expertise, and the pricing is very competitive. You can try out O-Matrix with a freeware Light version that limits matrix size and number. Biochemical specialism

Mlab ("Modeling Laboratory") is an interesting and lesser-known program that provides Matlab-like functions in a more specialist area. Its makers, Civilized Software of Maryland, have a particular expertise in biomedical applications such as "chemical kinetics, pharmacological compartmental models, multiple site ligand binding, neurophysiological modelling, and ultracentrifuge models". Its designer, Gary Knott, first wrote a DEC mainframe version in the 1970s at the National Institutes for Health, USA, but has since ported commercial versions to DOS, Windows, Unix, Linux, and Mac.

As with Matlab, you enter imperative commands in a main window, which "pops" a graphic window for plots, and command sequences can also be saved as reusable programs ("DO-files"). The language isn’t Matlab-compatible, but is based strongly on concise matrix constructs. For instance, once a function F=x^2 has been defined, F ON 1:5 generates a 5x1 matrix containing the first five square numbers, and POINTS(F,1:5) generates a 5x2 matrix of x,f(x) pairs for plotting.

Extension packages provide the components of Mlab’s main task of curve-fitting, in the widest sense: postulate a function to model some observed data, and Mlab performs the multivariate analysis to find the best-fit coefficients – even when the model is a system of ordinary differential equations. Other extensions allow non-linear optimisation, numerical ODE solution, symbolic differentiation, and a remarkable range of statistical functions: density, distribution, statistical tests, random number generators, survival analysis, moving filters, and so on. On-line help is provided via a Windows language reference, an internal help system, and example DO-files. Offline, the three A4 print manuals – reference, graphics, and applications – total more than 800 pages. As well as covering the mathematics behind Mlab's curve-fitting regression routines, the applications manual walks you through some 50 sample problems drawn from scientific fields not limited to the biochemical.

Mlab comes across as a mixture of the potent and the disappointing. In graphics, for instance, it has plot object handling, such as tube plots, as good as any of the big mathematics packages, along with unusual Corel-like functions for text placement. But details such as the amateur-looking caption fonts unfortunately put a poor face on a program with $5m R&D investment in its excellent mathematical repertoire. According to Civilized Software, Mlab work has been the basis of more than 900 peer-reviewed papers since 1972, and although the user base is only around 200 installations worldwide, it's concentrated on researchers in the medical, pharmacological and biochemical community. If this is your specialism, Mlab is worth it despite the rough edges (and even with the extensions, it costs less than Matlab).

Some other commercial products of interest, and there are many, include Ox-Professional, MathViews, and Gauss. The first implements Jurgen Doornik's Ox language for econometric modelling. Although its syntax resembles C++, its object-oriented matrix programming language is Matlab-like.

The second, from The MathWizards of San Diego, uses MPE (MathViews Parsing Engine), which is compatible with Matlab 3.5 and drives ActiveX and Java applications for digital signal processing, data analysis, and application development.

The third, from Aptech Systems, is a matrix programming language designed for computationally intensive tasks across a wide range of platforms.

Matlab for free?
In the academic field, Matlab’s market is further affected by freeware programs: some very close clones; and many others conceptually similar to Matlab. Occasionally even the original Fortran "classic Matlab" surfaces in software archives but, as Cleve Moler pointed out in NA (Numerical Analysis) Digest, it isn't public domain as is commonly believed. There are, however, genuinely free programs that draw on the Matlab "look and feel", presenting a command-line interface like older Matlabs.

Octave is generally considered a Matlab clone. Its main author, John W Eaton, describes it as "mostly compatible with Matlab" and originally conceived it as companion software for a chemical engineering textbook, so that students could solve problems without spending all their time debugging Fortran. He developed it under GNU (the freeware Unix-like operating system) and it's freely distributable under the Free Software Foundation’s GNU General Public License. A GNU C++ compiler is still needed to compile the source from scratch, but Unix/Linux and Windows binaries are available.

Scilab, on the other hand, uses a Matlab-like syntax, and its creators, the Scilab Group at INRIA (French acronym for National Institute for Research in Computer Science and Control) describe it as "similar but not a clone". Aimed at scientific applications in particular, it offers application modules for system control and signal processing; an online dynamic link with Fortran or C routines; a Maple interface, and Scicos, a flowchart-style dynamic system simulator equivalent to Simulink. It's freely distributed as source code or as binaries for Unix/Linux, Windows and Mac.

Other programs available as freeware include Tela (TEnsor LAnguage) and Euler. Tela is a Fortran-style "numerical computing environment mainly targeted for numerical simulation pre- and postprocessing work". Euler is a numerical laboratory with a programming language ("not a MatLab clone, but very similar"); an unusual feature is its ability to perform interval arithmetic, where variables are number ranges.

This large list may leave the potential user spoilt for choice. The advantages of freeware are price and, as the Open Software Foundation states, "freedom to run, copy, distribute, study, change and improve the software". You are, however, largely reliant on unofficial and voluntary sources of support (such as Scilab newsgroup comp.soft-sys.math.scilab) though at least one company offers commercial support for Octave, Scilab and Tela. Commercial programs have the edge for polish and guaranteed standards of support and performance. It's impossible to predict how individual programs will fare; but one can safely predict that the Matlab language style and interface will have a continuing and fruitful evolution.

Matlab pic

Felix Grant field-tests the Student Version of Matlab

When the full Matlab and its Student Version are functionally equivalent in all relevant ways, what's the distinction? Clearly, the reduced price is an important point - but a short one, quickly stated. However, Mathworks obviously intend this restricted low-cost availability to influence the dynamics of the wider Matlab marketplace, so I sought to explore the potential educational impact by looking at two contrasting student users.

At one end of the scale is Hassan, a PhD student dealing in complex socio-economic models. Mathematically fluent and competent, he already makes heavy use of Matlab, but has to compete for scarce time on an institutional copy 30km from home. At the other is Hannah, a 17-year-old sport science student on an A-level-equivalent vocational course in a Further Education (FE) college. Incisively intelligent, tackling most academic areas with ease, she nevertheless finds maths a joyless uphill struggle. In the normal course of things, she would never encounter or use a heavyweight product like Matlab.

Both were given access to a notebook PC with the Student Version loaded. Hannah worked with it for two months, in weekly two-hour group sessions with her friends. Hassan retained the machine 24 hours a day for just over a month. For Hassan, the most obvious value of this loan was the unrestricted access, and his work log showed dramatic productivity increases. For Hannah, by contrast not a "power user", the issue was whether the price reduction allowed her access to a useful new educational tool. To a genuinely surprising degree, it did.

As a verbal and visual thinker rather than a symbolic one, Hannah took to Matlab like a duck to water. The ubiquitous Excel, available in her college, was more than adequate, analytically, for her set tasks studying dynamics in ballgames. But, like many students, she was unhappy with the mycelium of cross-linked cell formulae. With Matlab, she could encapsulate each solved element of a problem in a small M-file, and then forget about it. These file collections coalesced into what a programmer would call modular design structures; to Hannah, they simply organised her notes in a common-sense, ring-binder style. Practical models that had defeated her in Excel evolved naturally and painlessly in Matlab. Furthermore, her whole group changed its thinking under her influence.

I started this trial decidedly sceptical about the Matlab student release. During the two months, however, I changed my mind. There is no doubt that, for these two students, the availability of an affordable Matlab revolutionised their work. To my surprise, the effect was most dramatic where I least expected success: the vocational FE context. "Affordable", in this case, meant "completely free for a short period" rather than "reduced cost" – but there's enough evidence of the impact to encourage thoughts of what might be achieved.

From the pedagogic point of view, a $99 Matlab in Hannah's hands produced an astonishing shift in learning pace, pattern, and outcome. The gain to Mathworks is a whole cohort of future professionals predisposed toward Matlab as a problem-solving tool. Hassan, probably closer to Mathworks' vision of the student user, equally obviously benefited. The advantage to Mathworks is less clear, as he was already convinced of Matlab’s value. Perhaps undergraduates and postgraduate candidates are more fertile ground.

Although convinced, and excited, by these benefits I still wondered about the marketing strategy, and afterward put this to a group discussion with Hannah, her friends, and Hassan.

The teenagers felt that they would be unlikely to buy their own copies at this stage, even at $99, but probably would at university. They also suggested that offering private staff copies at the same price (as opposed to a course licence) would be a good investment for Mathworks. If their tutors habitually used Matlab, they felt they would follow suit. Hassan agreed: his own attachment to Matlab originated not from institutional adoption but via a lecturer who had personally inspired him in his second year.

On the issue of prohibition on continued use after graduation, Hassan said that though $99 was still a "good deal" even in the last weeks of his doctorate, he wouldn’t buy it precisely because this prohibition (and its blunt wording) "antagonised" him. Hannah agreed with this sentiment, saying that she would buy it at the beginning of university life or not at all; her three teenage friends were derisive (one asked, "Who's to know if I go on using it?"). Hassan and Hannah seemed to sympathise, but agreed that fear of professional embarrassment would make them comply regardless.

Hannah suggested that a better marketing approach would be to bow to reality and allow continued personal use beyond graduation; obsolescence would drive users to upgrade at normal market rates, and thereby ensure continued influence as student grew into professional. I'm inclined to agree; I've found the product good enough to win loyalty, and Mathworks would be well advised to nourish that loyalty fiscally rather than turn it away or drive it underground.

You can use the online Reader Enquiry service at Scientific Computing World to make contact with organisations referred in this article, or to visit relevant websites.

back to main software reviews page