MATLAB is the name used to refer to the class of matrix calculator environments derived from the first, called MATLAB. MATLAB was developed by Cleve Moler in the late 1970s at the University of New Mexico and other locations with support from the National Science Foundation. Since then, many work-a-likes have been developed or are in development commercially, in government and university labs, and so forth.
The name of the product available from MathWorks is "MATLAB", not Matlab, Pro-MatLab, etc. Note that MathWorks holds a registered trademark on the uppercase version of MATLAB.
In this document, Matlab may refer to the collective set of MATLAB-based environments or it may refer to the current implementation developed by MathWorks, Inc. In general, these MATLAB-based environments are not source-language compatible.
2) What is the charter for the comp.soft-sys.matlab group?
The newsgroup 'comp.soft-sys.matlab' is a forum for discussing issues related to the use of MATLAB, the scientific calculation and visualization package from MathWorks Inc. This includes discussion of similar software packages which are also derived from the original `Classic MATLAB', such as Xmath from Integrated Systems Inc.
Appropriate discussion in the group will include both general Matlab issues and platform-specific questions, and discussion comparing MATLAB to other systems.
3) What commercially available MATLAB-type environments are sold?
In alphabetical order:
`CLAM' from Scientific Computing Associates, Inc.
246 Church Street, Suite 307
New Haven, CT 06510
Tel: 203-777-7442
Fax: 203-776-4074
`Ctrl-C' from Systems Control Technology, Inc.
CAE Systems Department
2300 Geng Road
Palo Alto, CA 94303
Tel: 800-227-1910
Tel: 415-494-2233
Fax: 415-496-6595
`MATLAB' from The MathWorks, Inc.
Cochituate Place
24 Prime Park Way
Natick, MA 01760
Tel: 508-653-1415
Fax: 508-653-2997.
Email: info@mathworks.com
`O-MATRIX' from Harmonic Software, Inc.
12223 Dayton Avenue North
Seattle, WA 98133
Tel: 206-367-8742
Fax: 206-367-1067
Email: harmonic@world.std.com
`Xmath' from Integrated Systems, Inc.
3260 Jay St.
Santa Clara, CA 95054-3309
Tel: (408) 980-1500
Fax: (408) 980-0400
Email: xmath-info@isi.com
4) What non-commercial MATLAB-type environments exist?
In alphabetical order:
`Caesy' is being developed by Matt Wette (mwette@csi.jpl.nasa.gov) at the Jet Propulsion Laboratory. This will be released to COSMIC soon. It will provide data structures, conversion to C-code, and many other features. See
M.Wette, "Caesy: A Computer-Aided Engineering System"
Proc. 1992 Symp. on Computer-Aided Control System Design
Napa, CA, March 1992
`Mat/C' developed at Lawrence Livermore National Laboratories by Don Gavel. This is not publically available.
`Matcalc', by M.Gerberg and E.J. Moore, University of New South Wales, Australia. It is available via anonymous ftp from
draci.cs.uow.edu.au in /netlib/matcalc/
csi.jpl.nasa.gov in /pub/matlab/matcalc/
`MaTX', an interpreter and compiler, developed at Tokyo Institute of Technology. See
M. Koga and K. Furuta, "MaTX: A High-Performance Programming
Language (Interpreter and Compiler) for Scientific and
Engineering Computation," Proc. 1992 Symp. on Computer-Aided
Control System Design, Napa, CA, March 1992
`MEDAL' developed at the University of Waterloo by Grantham Pang (pang@excel2.uwaterloo.ca). This has the same command language as MATLAB, but includes a knowledge-based expert system development facility. It is available for academic and research users via anonymous. You'll need to get a program password from the author to operate it (no sources included). It's available via anonymous ftp from
excel2.uwaterloo.ca [129.97.86.13] in /pub/
See
Pang, G.K.H.,"Knowledge-based Control System Design", in Recent Advances
in Computer-Aided Control Systems Engineering, Jamshidi, M and Herget,
C.J. (ed.), Elsevier Science Publishers, 1992.
Pang, G.K.H., "A Knowledge Environment for an Interactive Control System
Design Package", Automatica, Vol. 28. No. 3, pp. 473-491, May 1992.
`Octave', written at the University of Texas (jwe@che.utexas.edu), is available via anonymous ftp from
ftp.che.utexas.edu as /pub/octave/octave-?.?.tar.Z
`RLaB', written by Ian Searle (ians@eskimo.com), is free software (in the GNU copyleft sense). It is currently available via anonymous ftp from
csi.jpl.nasa.gov in /pub/matlab/RLaB
evans.ee.adfa.oz.au in /pub/RLaB
5) Are there any standards for MATLAB-type tools?
There is an IFAC/IEEE-CSS Working Group developing standards and guidelines for these tools. A proposed standard command language was developed, is described in the document "Command Language Standard for CACSD Software" and is available from
Magnus Rimvall
Control Systems Laboratory, GE-CRD
Schenectady, NY 12301
6) How can I join a MATLAB user group?
To join the user group, send your name, affiliation and address to:
matlab-users-request@mcs.anl.gov
For European user groups, contact:
France: Alain Baron
phone: 33/1 45 34 23 91
fax: 33/1 45 07 08 06
Germany: Dr. Ingrid Bausch-Gall
phone: 49/89 323 2625
fax: 49/89 323 1063
Sweden: Svante Littmarck
phone: 46/8 15 30 22
fax: 48/8 15 76 35
email: info@comsol.se
Switzerland: Carl Bergstrom
phone: 031/961 70 11
fax: 031/961 12 82
email: comsol@clients.switch.ch
UK: Peter Campbell
phone: +44-223-421920
fax: +44-223-421921
7) Are there any software archives?
Yes. MATLAB User Group software archive contains more than 1MB of user-contributed code. This archive is located on NETLIB server of Oak Ridge National Laboratories. To learn more, send following message:
send index
send index from matlab
to:
netlib@ornl.gov
For access from Europe, try the duplicate collection in Oslo:
Internet: netlib@nac.no
EARN/BITNET: netlib%nac.no@norunix.bitnet
X.400: s=netlib; o=nac; c=no;
EUNET/uucp: nac!netlib
For the Pacific, try netlib@draci.cs.uow.edu.au located at the
University of Wollongong, NSW, Australia.
The MathWorks maintains the archive on the anonymous ftp server ftp.mathworks.com [144.212.100.10]. This site contains a "best of" copy of the NETLIB archive as well as other user-contributed, and MathWorks contributed software and documentation. If you are interested in submitting software to the archive pick up the file README.incoming from the archive or send e-mail to drea@mathworks.com
There is a renegade archive at csi.jpl.nasa.gov [128.149.29.4], in /pub/matlab. This is stocked with a mish-mash of stuff you may not find on the other archives (e.g., free MATLAB-look-a-likes).
8) Are there any publications related to MATLAB?
Yes, Math Works Inc. publishes a quarterly magazine called MathWorks Newsletter, giving info. on products (new versions, releases, toolboxes), matlab user group, matlab short courses, related texts etc. To subscribe to the newsletter, send email with your snail mail address to subscribe@mathworks.com.
from John Little ...
Here's the "high-level" summary of the major new additions:
* Object-based graphics facility
* 3-D color scientific visualization abilities
* Animation
* Sound output capability
* M-file debugging facilities
* Low-level file I/O functions
* Graphical user interface controls (GUI widget set)
* Sparse matrix support
* An improved help system
* Interpreter and graphics speed improvements
* A new External Interface library (MEX-files, engine, MAT-files)
* Better documentation (in the eyes of the beholder, I imagine :-) )
* Lots of other smaller improvements..
10) How does MATLAB perform on machine X?
LINPACK benchmarks in MATLAB (reported by The MathWorks):
machine KFLOPS (LINPACK)
======= ================
Macintosh (8MHz 68000) 3
PC/AT (6.0MHz/80286/EGA) 15
PC/XT (4.7MHz/8088/CGA) 17
AT&T 6300 (8MHz/8086) 29
Macintosh II (68020/68881) 85
MicroVAX II (VMS/D_floating) 140
Macintosh IIcx (68030/68882) 168
HP 9000/Series 350 190
80386/80387 (20MHz, 386-MATLAB) 232
Macintosh IIci (25MHz 68030/68882) 239
VAXstation 3100 (VMS/D_floating) 365
HP 9000/400 (68030) 500
80486-based PC (33M Hz) 1300
HP 9000/425 (68040 chip) 1400
Macintosh Quadra 700 1500
Sun SPARCstation 1 1500
DECstation 3100 1600
SGI Indigo 2400
Sun SPARCstation 2 2900
Convex C1 3700
IBM RS/6000 7000
HP 9000/700 7400
Cray X-MP 71000
Cray X-MP on a 500-by-500 matrix 135000
Other numbers (reported by users):
80486-DX2 PC @66MHz 3121 (k.hari@ieee.org)
11) What is SIMULINK (alias Simulab)?
SIMULINK is an interactive system for the nonlinear simulation of dynamical systems. It is a graphical, mouse-driven program that allows systems to be modelled by drawing a block diagram on the screen. It can handle linear, nonlinear, continuous-time, discrete-time, multivariable, and multirate systems. SIMULINK runs on workstations using X-windows, under MicroSoft Windows on the PC, and on the Macintosh. It takes full advantage of windowing technology, including pull-down windows and mouse interactions. SIMULINK is fully integrated with MATLAB, and, together with MATLAB and the Control System Toolbox, forms a complete control system design and analysis environment.
12) What toolboxes are currently available from The MathWorks?
The following list includes toolboxes currently offered by The MathWorks. For more info check
ftp.mathworks.com in /pub/product-info
Signal Processing Toolbox.
This is a toolbox for digital signal processing (time series analysis). It includes functions for the design and analysis of digital filters, like Butterworth, Elliptic, and Parks-McClellan, and for FFT analysis (power spectrum estimation). It also includes some 2-dimensional signal processing capabilities.
Control System Toolbox.
This is a toolbox for control system design and analysis. It supports transfer function and state-space forms (continuous/discrete time, frequency domain). Function for step, impulse, arbitrary input responses, as well as Bode, Nyquist, and Nichols plots. Design with root-locus, pole-placement, and LQR optimal control.
System Identification Toolbox.
This is a toolbox for parametric modelling. Identified models are in transfer function form (either z-transform or Laplace transform) and state-space form (e.g., ARMA models or Box-Jenkins models).
Optimization Toolbox.
This is a toolbox for linear and nonlinear optimization and supports unconstrained and constrained minimization, minimax, nonlinear least squares, multi-objective, and semi-infinite optimization, linear programming, quadratic programming and the solution of non-linear equations.
Spline Toolbox.
This is a toolbox for working with splines and is typically used for curve fitting, solution of function equations and functional approximation.
Robust-Control Toolbox.
This is a toolbox for robust control system design and supports LQG/loop transfer recovery, H2, H0, and mu- control synthesis, singular value frequency response, and model reduction.
Neural Net Toolbox.
This is a toolbox for designing and simulating neural networks and supports implementation of the perceptron learning rule, the Widrow-Hoff rule, and several variations of the backpropagation rule. Transfer functions included are hard limit, linear, logistic & hypertangent sigmoid.
Delta Toolbox.
This is a toolbox for analysis using the delta transform, an approach to unifying continuous and discrete systems theory without use of the Z-transform. It is available free to purchasers of "Digital Control and Estimation: A Unified Approach," by Graham Goodwin and Rick Middleton.
Image Processing Toolbox.
The Image Processing Toolbox provides an environment for image processing and analysis. Images are matrices (surprised?). Functions include linear and nonlinear filtering; image restoration; image enhancement; image analysis and statistics; color, geometric, and morphological operations 2-D transforms; and 2D FIR filter design and frequency response.
Symbolic Math Toolbox.
The Symbolic Math Toolbox contains functions for symbolic algebra, exact linear algebra, variable precision arithmetic, equation solving, and special mathematical functions. Its underlying computational engine is the kernel of Maple. The Extended Symbolic Math Toolbox augments the functionality to include Maple programming features and specialized libraries.
Statistics Toolbox.
The Statistics Toolbox provides statistical data analysis, modeling, and Monte Carlo simulation; building-blocks for creating your own special-purpose statistical tools; and GUI tools for exploring fundamental concepts in statistics and probability. Functionality covers descriptive, inferential, and graphical statistics, and linear models as well as interactive graphics for dynamic visualization of functions, data, and probability distributions.
13) Can I use C and Fortran programs with MATLAB?
MATLAB's MEX-file facility allows user to use C and Fortran subroutines as MATLAB m-files. It is also possible to use MATLAB as a computational engine for C/Fortran subroutines.
14) How do I contact The MathWorks about MATLAB via email?
Here you go ...
* support@mathworks.com technical support
* suggest@mathworks.com product enhancement suggestions
* bugs@mathworks.com bug reports
* doc@mathworks.com documentation error reports
* register@mathworks.com user and product registration
* subscribe@mathworks.com subscribing user registration
* info@mathworks.com sales, pricing, general info.
* netlib@ornl.gov software archive contact
* digest@mcs.anl.gov user group
from serr15@liverpool.ac.uk ...
Try something like the following in your `startup.m' file:
set(0,'DefaultFigurePosition',[5 5 505 405])
set(0,'DefaultFigureColor',[0,0,0]) %% N.B this has side effects.
set(0,'DefaultAxesFontName','times')
set(0,'DefaultTextFontName','times')
set(0,'DefaultAxesFontSize',12)
set(0,'DefaultTextFontSize',12)
16) How can I import MATLAB graphics into my Framemaker, TeX, etc. document?
The MATLAB (version 4) print command provides a "-deps" argument which provides a Encapsulated PostScript file of your plot. Some people have reported various problems getting this stuff to work. Some suggestions:
Removing the last line "%%EOF" from the eps-file.
Use the the pstoepsi filter from Doug Crabill (dgc@cs.purdue.edu).
Use "bbps" and ghostscript. "bbps.shar" is available via anonymous ftp on "csi.jpl.nasa.gov". You'll need to get GhostScript from your nearest GNU ftp site.
[This area needs more work :). ed.]
17) Is there a topical help function, like `apropos'?
Yes. The function you're looking for is `lookfor' (in MATLAB 4).
>> lookfor fourier
FFT Discrete Fourier transform.
FFT2 Two-dimensional Fast Fourier Transform.
IFFT Inverse discrete Fourier transform.
IFFT2 Two-dimensional inverse discrete Fourier transform.
FOURIER Graphics demo of Fourier series expansion.
DFTMTX Discrete Fourier transform matrix.
>>
18) Why am I finding all these undocumented functions (like COMET) in MATLAB?
from Cleve Moler ...
Almost everything in the "demos" directory is not described in the User's Guide. There are lots of goodies there. In 4.0, the demos are best place to see examples of Handle Graphics.
There are other undocumented functions in directories other than demos. Some of them are "worker" functions that are unlikely to be used directly; they are simply called by other functions. A few, like COMET and COMET3, were actually written after the User's Guide had been sent to the printer.
19) Has anybody any information about the matlab function `system_dependent'?
from John Little (w/editing) ...
`system_dependent' is an unpublished function that is used for a variety of crufty things. It will most certainly change from time to time and possible even go away completely. For anybody curious about it, here is what it does in MATLAB 4.0 on SPARCstations:
system_dependent(1) deals with the MATLAB-ACSL interface. ACSL
is a simulation language that MATLAB can talk
to. See ACSL.M for more information.
system_dependent(2,0) turns off command-line editing.
system_dependent(2,1) turns it back on.
system_dependent(3) is unused.
system_dependent(4,i,j) is used to program the command-line editing
keys. See CEDIT.M for more information.
system_dependent(5) enables core dumps in the event of seg faults.
Normally MATLAB tries to catch seg faults and
"continue".
system_dependent does different things in MATLAB 3.5 and other platforms.
20) How can I get the parser to accept a dummy reference without an error?
Adopted from post by Jim Tung ...
MATLAB parses code to look for syntax errors. When the parser encounters a name with 2 or fewer arguments, it lets them pass since they might be a variable with indices. If it encounters a name with 3 or more arguments, MATLAB knows it cannot be a variable, so the error message is returned. If you don't want the parser to snag the function, specify one with 2 or fewer arguments.
21) How do I get the plot command to cycle through line-types?
From Chuck Packard
MATLAB v4.1 has a an axis property LineStyleOrder for this.
Monochrome users can tell MATLAB to always use white lines
and cycle through their favorite line styles with the
commands:
These commands can be put in your startup.m to always
give you styled lines.
22) Can I use `dbup' and `dbdown' within a function?
Derived from post's of lara@mrisun.med.yale.edu and jlittle@mathworks.com ...
MATLAB wasn't designed to be used this way. But, if you don't reference
any variables between your calls to `dbup' and `dbdown' (i.e., you just use
`save', `who', `dir', etc), it should work. Otherwise, you may well run
into problems. If you `dbup' while in a function, you change the workspace
context while continuing execution of the original function. This means that
subsequent references to variables will be bound to variables in a
different workspace. Since the internal p-code uses integers as
variable identifiers, you will get a random attachment to these
different variables. At best, you'll get random results. At worst
you might seg fault if you exceed the number of available identifiers.
23) Is there a GNU emacs editing mode for MATLAB?
A GNU emacs `matlab-mode' is available via anonymous ftp from
24) What is the sign convention used in MATLAB's FFT routines?
The FFT in MATLAB is defined as sum(x(i)*exp(-j*i*k/N)) and not
sum(x(i)*exp(j*i*k/N)). The first version is traditionally used
by engineers, the second version by mathematicians. Since MATLAB
was written by an engineer (John Little), the engineering approach
was used.
25) Is there any MATLAB software for wavelets?
Contact Carl Taswell
A newer version should be available soon.
Also, Jeff Kantor
The toolbox, rice-wlet-tools-1.1, a collection of MATLAB "mfiles"
and "mex" files for twoband and M-band filter bank/wavelet analysis,
is available via anonymous ftp from
Contact Ramesh Gopinath
26) Is there any MATLAB software for fuzzy logic?
A.Lotfi
A Fuzzy-Control Toolbox has been developed by Bernhard Kaemmpf
Jyh-Shing Roger Jang
27) Is there any MATLAB software for communications?
Mehmet Zeytinoglu
28) Is there a MATLAB interface to Mathematica?
Yes. WRI has developed a free MATLAB-Mathematica interface. It is
available via anonymous ftp from
29) Why was `fsolve' removed from MATLAB Version 4?
The algorithms used by fsolve were not numerically well behaved. MathWorks
did not feel that it met the standards require for approved software. The
version of FSOLVE in the Optimization Toolbox is recommended. If your site
doesn't still have the 3.5 version, you can get it via anonymous ftp from
30) Are there any published books on, or relating to, MATLAB?
There is a list of published book available via anonymous ftp from
Here's "Tony's trick", attributed to Tony Booer of Schlumberger:
To initialize a matrix with values "a" in the first row and values "b" in
the second row, do the following:
32) How can I load-from or save-to a file whose name is in a string variable?
33) How can I store the result of `!ls *.dat' in a variable?
34) How can I make a variable global from within a function?
You can in MATLAB 4. The following hack is from
Laura Needles
Define the script file `mkglobal_1.m' as
Define the script file `mkglobal_2.m' as
This usually happens if in the matlab path you include greater that 4
or 5 paths. One solution is to increase your environment space by adding the
following command in your config.sys file:
where nnnnn is the number of bytes you use for environment memory. It varies
from 256 bytes to 32768 bytes(32Kbytes). Usually, 5000 bytes can solve your
problem. (The /p command is used so that the autoexec.bat file runs when you
boot your computer.)
from mesaros@isi.com ...
Xmath is an interactive mathematics, scripting, and graphics environment for
X Window workstations. It has features which represent a significant
improvement on matlab-type software tools, including:
Xmath from Integrated Systems Inc. is available on the Internet via FTP
from isi.com. If you would like to down-load Xmath to view the Xmath
Interactive demo, do the following:
Once your e-mail address is accepted, and if the maximum number of ftp
clients has not been exceeded, the connection will be made and a list of
instructions will appear. Simply follow that list of instructions to
transfer a copy of Xmath to your system.
37) Are there any publications related to MatrixX?
Yes, ISI publishes a quarterly magazine called
Response Times that gives information on products (new ver-
sions, releases, modules), user conference, classes, and
a Technical Support Corner where they answer user questions.
Also, ISI has an annual Users Conference. The viewgraph
presentations from this conference are available. The next
conference in March 15-17, 1993.
38) Are there any e-mail addresses related to MatrixX/Xmath?
Yes. Some are:
39) What other modules are available from ISI?
* System_Build
* RT/Expert System Block
* RT/Fuzzy Logic Block
* Interactive Animation
* AutoCode (C,FORTRAN, Ada)
* Automatic Documentation Generation
3rd Party Packages
Real Time Execution
ISI recently merge with the Software Component Group that
makes and sells the PSOS+ real time operating system and
development tools.
From Alexandra Schmidt
Xmath does not currently allow you to 'derive' new subclasses from the
built-in ones (dynamic systems, parameter-dependent matrices, strings
and string matrices, polynomials, "special matrices", etc.) However,
a number of our users have used the list object to create compound
objects containing different kinds of built-in objects, then used the
resulting list-based object for more complex data modeling. Your
question echoes a request we've heard a number of times and is a high
priority for our future development, so keep an eye out. . .
set( 0, 'DefaultAxesColorOrder', [1 1 1] )
set( 0, 'DefaultAxesLineStyleOrder', '-|:|--' )
csi.jpl.nasa.gov as pub/matlab/util/matlab-mode.el
simplicity.stanford.edu in /pub/taswell
control.cheg.nd.edu in /pub/wavelets/wavetools1_1.tar
cml.rice.edu in /pub/dsp/{software,papers}
ftp.mathworks.com as /pub/contrib/misc/fuzzy_inference_systems.sh
or /pub/contrib/misc/pc_fuzzy_inference_systems.sh
csi.jpl.nasa.gov in /pub/matlab/contrib/
ftp.mathworks.com as /pub/contrib/misc/comm_tbx.tar
mathsource.wri.com as /pub/WhatsNew/matlab2math.tar.Z (Unix)
or /pub/WhatsNew/matlab2math.sea.hqx (Mac)
or /pub/WhatsNew/matlab2math.zip (Windows) ?
or via email via "send 0205-951" to mathsource@wri.com.
ftp.mathworks.com as /pub/contrib/optim/fsolve35.tar
csi.jpl.nasa.gov as /pub/matlab/matlab-books
Quick Little MATLAB Hacks
31) How can I initialize a this low rank matrix easily?
[a(1,ones(1,m)) ; b(1,ones(1,m))]
name = 'xyz.mat';
eval(['save ', name]);
eval(['load ', name]);
[stat, list] = unix('ls *.dat');
The variable `stat' contains the return status, the variable `list'
contains the output.
function [] = mkglobal(var)
% MKGLOBAL mkglobal(var) - make var a global variable
if ~exist('mkglobal_var'), mkglobal_1; end;
mkglobal_var = var; mkglobal_2
global mkglobal_var
eval(['global ', mkglobal_var]);
MATLAB on the PC
35) What can I do when MATLAB tells me there is not enough environment space?
shell=c:\\dos\\command.com /e:nnnnn /p
Xmath / MatrixX Product Information.
36) What is Xmath?
* Object-oriented scripting language.
* "Point-and-click" color graphics.
* Visual debugging tool.
* LNX and C-callable libraries.
* Programmable MOTIF GUI layer.
From the UNIX/Shell environment, type:
ftp isi.com (if the host is unknown, try ftp 192.73.222.1)
When asked for name/user, type:
anonymous
When asked for the password, simply type your e-mail address.
* support@isi.com tech support for ISI MatrixX products
(408)980-1590 ext. 321
* info@isi.com product literature requests
* kate@isi.com contributions to Response Times Mag
* MatrixX/XMath
* Robust Control Module
* Optimization Module
* Model Reduction Module
* Digital Signal Processing Module
* System Identification Module
* ADAPTx Automated System Identification Software
* AC-100 Product for Hardware in the Loop Simulations
Xmath User Questions
40) Is it possible to derive new classes in XMath?
$Id: FAQ.in,v 1.2 1993/11/23 17:24:16 mwette Exp $