MATLAB Release Notes

Major Bug Fixes

MATLAB 6.1 includes several bug fixes made since MATLAB 6.0. This section describes the particularly important bug fixes.

Also, MATLAB 6.1 includes several important MATLAB 6.0 bug fixes.

Development Environment

Help Browser Supports Mouse Wheel

For Windows platforms, the wheel on your mouse will now work in the Help browser.

UNIX Help Browser Search Results Now Highlighted

On UNIX systems, when you perform a full text search using the Help browser, the search terms are highlighted when you view a page.

UNIX Paste Problems Fixed

On some UNIX systems, pasting after a cut or copy would sometimes cause the system to hang. That problem has been fixed. However, due to issues with UNIX itself, the paste does not always work and you might have to do it again.

Mathematics

Memory Leak Fixed in Matrix Multiply

Under certain conditions, matrix multiply (which includes matrix-vector multiply, vector-matrix multiply, and even vector inner products) leaked memory. For example, on a Pentium III under Linux or Windows, any vector inner product of length greater than 15,000 leaked memory. This was observed by MATLAB increasing its use of system resources that were never returned. MATLAB 6.1 uses new ATLAS BLAS libraries that no longer leak memory.

Improved Convergence for eigs(A,k,'sm') and eigs(A,k,0)

In MATLAB 6.0, `eigs` was reimplemented to use the ARPACK library of routines. Unfortunately, the smallest magnitude case, `sigma = 'sm'` and `sigma = 0`, chose the wrong algorithm. For MATLAB 6.1, the correct ARPACK algorithm is used and convergence is much quicker.

This bug fix introduces a backwards incompatibility. When `A` is a function `Afun` and `sigma = 'sm'`, `Afun` must now return `Y = A\x`. Prior to MATLAB 6.1, `eigs` required `Afun` to return `y = A*x` for this case.

In MATLAB 6.0, `quad('cos(4*n*x)',-pi,pi)` returned `2*pi` instead of `0`. When `quad` initially sampled the function, it incorrectly assumed the function is the constant 1 over the interval `[-pi,pi]` and so returned `2*pi` early. It now samples more carefully and returns `0`.

griddata3 Inner Matrix Error Message

In MATLAB 6.0, an internal error sometimes caused `griddata3` to display the error message, `Inner matrix dimensions must agree`. This error has been corrected.

Improved Handling of Degenerate Triangulation

In MATLAB 6.0, there were sometimes problems associated with degenerate triangulation. For example, `convhull` could produce a convex hull that did not cover all the original data. MATLAB 6.1 corrects this problem by replacing the utility function `delaunayc` with Qhull.

Error Message Display for Qhull-Related Functions

In MATLAB 6.0, Qhull-related functions (e.g., `delaunayn`) displayed error messages in standard error. For UNIX platforms, standard error is different from the command window. For MATLAB 6.1, error messages are displayed in the command window.

histc Computes First Two Bins Correctly

Prior to MATLAB 6.0, `histc` produced the wrong results for the first two bins for cases with extremely nonuniform bin edges. This problem was corrected in MATLAB 6.0.

• ```  Processor has been on-line since 04/20/2001 14:09:31
The alpha EV4.5 (21064) processor operates at 233 MHz,
and has an alpha internal floating-point processor.
```

The number in parentheses on the third line, in above example (21064), is the number you are interested in.

GLNX86.   Enter the following command

• ```cat /proc/cpuinfo
```

and look for the following fields in the output (values may vary from the example below)

• ```vendor_id  :GenuineIntel
cpu family :6
model      :8
model name :Pentium III (Coppermine)
stepping   :1
```

Match up this information with the table in `<MATLAB>\bin\glnx86\blas.spec`.

 Note    Some versions of glibc 2.1.x have problems with environment variables (and the ability to reliably query them) from within shared library `init` functions. To take advantage of the `BLAS_VERSION` feature, you may need to upgrade your machine to glibc 2.2.

• ```System Administrator Manager (SAM) -> Performance monitors ->
System properties -> Processor tab
```

This provides information about the type of processor.

HPUX.   MATLAB only supports HPUX running on PA-RISC2.0.

IBM_RS.   Contact IBM Technical Support and request the document entitled "Determining CPU Speed in AIX." This is a table of machine types, processor types, and processor speeds.

SGI.   Enter the following command

• ```sysinfo -a
```

which returns a lot of information. In the first few lines, look for information something like

• ```CPU Type is              mips R4400 5.0
```

The information starting with `R` is what you are interested in. MATLAB ships for the `R5000`, `R8000`, `R10000` and `R12000` (default).

SOL2.   Enter the following command

• ```uname -m
```

which returns either `sun4u` for UltraSPARC or `sun4m` for the older, non-Ultra machines (e.g., Hyper and SuperSPARCs).

WIN32.   Start with the My Computer icon, and work your way to the General tab, as shown below:

• ```My Computer -> Control Panel -> System -> General tab
```

This should list the family and model number for your computer. On Windows NT and Windows 2000, the same information is on the Environment tab, under the System Variable `PROCESSOR_IDENTIFIER`. Match up this information with the table in `<MATLAB>\bin\win32\blas.spec`.

Using Another BLAS

You may also use BLAS from other sources than the ones shipped with MATLAB, provided they are in the correct format. This format is a shared library (as opposed to a static library) that exports all the double-precision (starting with d) and double-precision complex (starting with z) BLAS routines from `dasum` to `zupmtr`. On HP, IBM_RS, and WIN32, the symbols must be exported without trailing underscores, while for ALPHA, GLNX86, SGI, and SOL2, the symbols must be exported with trailing underscores (e.g., `dgemm_` ).

If the shared library you provide also includes LAPACK symbols like `dgefa` (or `dgefa_` ), then they will override the MATLAB default implementation, which is based on the Fortran LAPACK from Netlib at http://netlib.org.

 Creating Graphical User Interfaces -- GUIDE Upgrading from an Earlier Release