MATLAB Major Bug Fixes

This document describes major bug fixes in this release. Click on a problem area listed below to read how it has been fixed.

tan() Now Returns Correct Answers for Large Complex Variables
Application Data not avaialble in exported GUI
Autosave Files Can Now Be Removed Automatically Using Preferences
Clicking on Menu Bar Executes Edit Text Callback
diff Produces Correct Results with Logical Inputs
dim Option and N-D Array Support Added to var Function
Error converting a MATLAB 5.3 GUI to MATLAB 6.5
Error using GUIDE on existing GUI with empty Tag property
Exporting GUI with a uicontextmenu to a Single M-file Sometimes Failed
Exporting GUIs from GUIDE to a Single M-File
FIG-files Require Full Filename of More Than 11 Characters
Figure properties not retained on export from GUIDE
FixedWidth text in uicontrols is now rendered at the correct size
Font Not Found Warning Fixed on Linux Platforms
fwrite Now Supports u/int64
Help Browser Selection Problems Are Fixed
imfinfo Returns Correct Image Type for Version 5 Truecolor BMP Images
Improved Accuracy for Denormal Pivot Handling
imread No Longer Shears Certain 24-bit and 32-bit Truecolor Bitmap Images
imread Now Handles BMP Images with Negative Height Values
imread Now Reads Multisample TIFF Images Correctly
input Function in M-File No Longer Appears to Freeze MATLAB
Macintosh: MATLAB No Longer Terminates Unexpectedly from File Dialog Boxes
Macintosh: MATLAB Now Stops Execution for Command+.
MATLAB hangs when using Property Inspector from GUIDE
MEX file can have dependent DLL's in same directory as MEX file itself
Mouse Wheel on Linux Now Supported
movefile Fails in Deep Directories on Windows
multibandread Excess Memory Usage Now Fixed
Recursion limit error when running existing GUIs from GUIDE
regexp Maximum Token Number
regexp No Longer Has a Limit of 16 Tokens
regexp Notation for a Zero-Length Token
regexp Now Accepts Patterns of Arbitrary Length
regexp Now Allows String Anchors To Be Embedded Within Strings
Sorting a Sparse Row Vector or Matrix
u/int* Types are Printed Exactly
uiimport Now Works Properly With an Output Argument
UNIX Copy and Paste Now Perform Reliably
ver Function Now Ignores Case on Windows Platforms
Video Demos Now Work in All Popular Browsers

tan() Now Returns Correct Answers for Large Complex Variables

The tan operator used to return Nan+iNan for large complex input like tan(1000i). Now tan(1000i) returns the correct answer, i.

Application Data not avaialble in exported GUI

In MATLAB Verion 6.5, in an exported GUI, application data for an ActiveX component was not available to the CreateFcn callback for that component. This problem has been fixed.

Autosave Files Can Now Be Removed Automatically Using Preferences

There is now an Editor/Debugger preference you can set to automatically remove autosave files when you close the source file. Select Preferences -> Editor/Debugger -> Autosave, and under Close options, select the Automatically delete autosave files check box. In the previous version your only option was to manually remove autosave files.

Clicking on Menu Bar Executes Edit Text Callback

In Version 7.0, you can execute the callback routine for an edit text control by first typing the desired text and then doing one of the following: Prior to Version 7.0, clicking on the menu bar did not trigger execution of the callback.

diff Produces Correct Results with Logical Inputs

In Release 13, the diff function could produce an incorrect result when passed a logical array. This has been fixed in this release.

dim Option and N-D Array Support Added to var Function

The var function now accepts a dim argument to allow the variance to betaken along any specified dimension. var also now accepts N-D arrays.

In addition, two minor bugs in the way std and var handle empty inputs have been fixed to make them compatible with sum, mean, and others.

Error converting a MATLAB 5.3 GUI to MATLAB 6.5

Converting a MATLAB 5.3 (R11) GUI to MATLAB 6.5 sometimes resulted in the error:
Unhandled internal error in guidemfile. Reference to non-existent 
field 'blocking'
This problem has been fixed.

Error using GUIDE on existing GUI with empty Tag property

In MATLAB Version 6.5, editing a GUI that contained a uicontrol whose Tag property was set to [] (empty) sometimes generated the following error message:
Unhandled internal error in guidefunc.
Error using ==> set
Value must be a string
This problem has been fixed.

Exporting GUI with a uicontextmenu to a Single M-file Sometimes Failed

For any GUIDE GUI that uses a context menu, export from GUIDE sometimes failed with an error like this one:
??? Error using ==> guidefunc
Improper assignment with rectangular empty matrix.
This problem has been fixed.

Exporting GUIs from GUIDE to a Single M-File

In MATLAB Version 6.5, some GUIs exported from GUIDE failed to open. In other cases, attempting to export a GUI resulted in one of the following errors:
??? Error using ==> guidefunc
Error using ==> ==
Matrix dimensions must agree.

??? Error using ==> guidefunc                                            
Error using ==> ==                                                       
Function '==' is not defined for values of class 'struct'.
These problems have been fixed.

FIG-files Require Full Filename of More Than 11 Characters

When saving a figure as a FIG-File, the full filename (including path) must be greater than 11 characters.

Figure properties not retained on export from GUIDE

In MATLAB Version 7.0, the opening function, OpeningFcn, can expect the same set of figure property values when opening an exported GUI that it would find when opening a GUI that had not been exported. This was not always true in Version 6.5 and may have resulted in a variety of errors.

FixedWidth text in uicontrols is now rendered at the correct size

In previous releases, uicontrols with FontName 'FixedWidth' (or 'Courier New') and FontSize smaller than 12 were drawn with 12 point text. That has been fixed. The text is now drawn at the correct size.

Font Not Found Warning Fixed on Linux Platforms

For some Linux configurations, on MATLAB startup, several warnings of the form:

Font specified in font.properties not found ...

appeared in the Command Window because the JVM could not find required fonts. It did not affect MATLAB operations. The problem no longer occurs and you should not see the message.

fwrite Now Supports u/int64

The fwrite function can now save uint64 and int64 values. Previously it worked only on DEC Alpha; now it works on all supported MATLAB platforms.

Help Browser Selection Problems Are Fixed

In Version 6.5 of MATLAB, when you selected code in the Help browser documentation and demos, the entire line of code was selected. Now you can select just part of the line of code.

imfinfo Returns Correct Image Type for Version 5 Truecolor BMP Images

The imfinfo function now returns the correct image type for Version 5 truecolor Bitmap (BMP) images. Previously, imfinfo had erroneously returned the type 'indexed' for these images.

Improved Accuracy for Denormal Pivot Handling

LU factorizations for full matrices now use a modified version of the LAPACK LU factorization routines and return more accurate results when encountering denormal pivots (i.e., smaller than realmin). In previous versions, results may have included NaNs; for example:

A = [2^(-1050) 2^(-1050);0 0] 
[L,U] = lu(A)

A =
    1.0e-316 *
       0.8289  0.8289
            0       0

L =
            1       0
          NaN       1

U =
    1.0e-316 *
       0.8289  0.8289
            0     NaN

In the current version, results are more accurate. For example, using A as above,


[L,U] = lu(A)

L =
            1       0
            0       1

U =
    1.0e-316 *
       0.8289  0.8289
            0       0 

This improved accuracy carries with it a performance loss for any operations that use lu or lu-based \ (backslash) for factorization of full matrices.

imread No Longer Shears Certain 24-bit and 32-bit Truecolor Bitmap Images

The imread function now imports certain 24-bit and 32-bit truecolor Windows Bitmap (BMP) images correctly. Previously, the images appeared to be sheared.

imread Now Handles BMP Images with Negative Height Values

The imread function can now import Windows Bitmap (BMP) images that specify a negative value for image height. The BMP specification uses negative values to indicate the image orientation. If the height is positive, the image is a bottom-up image; if the height is negative, the image is a top-down image.

imread Now Reads Multisample TIFF Images Correctly

The imread function now handles multisample TIFF images correctly. Previously, if the PhotometricInterpretation field was set to 'grayscale', imread incorrectly assumed that the input image always has one sample per pixel.

input Function in M-File No Longer Appears to Freeze MATLAB

MATLAB sometimes appeared to freeze when you ran an M-file that contained an input function. The Command Window was actually hidden behind another window, such as a Figure window, and you might not have been aware that MATLAB was waiting for input. You had to bring the Command Window forward and provide the input. The problem has been fixed. Now, MATLAB automatically brings the Command Window foward for you to provide input.

Macintosh: MATLAB No Longer Terminates Unexpectedly from File Dialog Boxes

In version 6.5 on Macintosh platforms, MATLAB sometimes unexpectedly terminated when you accessed files via dialog boxes, such as File -> Open. This problem has been fixed.

Macintosh: MATLAB Now Stops Execution for Command+.

On Macintosh platforms, press Command+., (that is the Command key and the period key) to stop M-file execution. This works when the key bindings preference is set to Emacs (MATLAB standard) or Macintosh. Ctrl+C and Ctrl+Break also stop execution on all platforms.

MATLAB hangs when using Property Inspector from GUIDE

Using the Property Inspector from GUIDE sometimes caused MATLAB Version 6.5 to hang. This problem has been fixed.

MEX file can have dependent DLL's in same directory as MEX file itself

The way that MATLAB loads MEX files on Windows has been revised so that it is now possible to put dependent DLL's in the same directory as the MEX file rather than having to put them in the application directory (/bin/win32). This permits users and third parties to distribute self contained collections of M, MEX, and DLL's without having to explicitly copy the dependent DLL's into a different directory.

Mouse Wheel on Linux Now Supported

In previous versions, you could not use a mouse wheel with MATLAB on some Linux platforms. The mouse wheel should now work with MATLAB on Linux, if your Linux system is configured to use a mouse wheel.

movefile Fails in Deep Directories on Windows

In deep directories on Windows (path length exceeding 150 chars or so), the Windows system command "move" fails with the message: ??? Error using ==> movefile The filename or extension is too long. This affects MATLAB's movefile command. The work-around is to use copyfile(fileName1,fileName2) delete(fileName1)

multibandread Excess Memory Usage Now Fixed

The multibandread function would sometimes allocate far more memory than necessary when reading subsets of BSQ data sets. This bug is now fixed. When you read a data subset, only the necessary memory is allocated.

Recursion limit error when running existing GUIs from GUIDE

In MATLAB Version 6.5, running some existing GUIs from GUIDE generated the following error message:
??? Error using ==> guidefunc
Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit.  Be aware that exceeding your available stack 
space can crash MATLAB and/or your computer.

Could not create figure:
127
This problem has been fixed.

regexp Maximum Token Number

The regexp function supports up to 127 tokens. Additional parenthesized expressions will not mark tokens.

regexp No Longer Has a Limit of 16 Tokens

The arbitrarily chosen number of 16 as a limit for tokens in the regexp function has been lifted, and now as many tokens as desired may be used.

regexp Notation for a Zero-Length Token

In Release 13, for the regexp function, a token that matched zero characters was returned as [0 0]. This required special case handling, and also lost the information as to where in the string the token was.

The new behavior is for the zero-length token to be denoted as [n n-1] where n is the number of characters into the string that the token matches nothing.

regexp Now Accepts Patterns of Arbitrary Length

The regexp function had a limitation that an expression could notcontain more than 256 characters. This has been fixed and regexp now accepts expressions of any length.

regexp Now Allows String Anchors To Be Embedded Within Strings

For the regexp function, you could not embed string anchors (^ and $)within an expression. You could use string anchors explicitly only at the beginning and end of an expression, respectively. This has been fixed, so that the anchors may be used anywhere within an expression to assert the beginning or end of a string.

Sorting a Sparse Row Vector or Matrix

In Release 13, sorting a sparse row vector or sorting a sparse matrix along its rows, using the command sort(S,2), resulted in a segmentation violation. This has been fixed in this release.

u/int* Types are Printed Exactly

In previous versions of MATLAB, integer values greater than 999,999,999 were printed in scientific notation. Complex integer values were printed in scientific notation even if they had smaller values. All uint8, uint16, uint32, uint64, int8, int16, int32, and int64 values are now printed showing all digits exactly regardless of their value or whether they are complex or not.

uiimport Now Works Properly With an Output Argument

In Version 6.5, invoking the uiimport command with an output argument caused MATLAB to print a warning and incorrectly return an empty array. This was fixed in version 6.5.1.

UNIX Copy and Paste Now Perform Reliably

In previous versions, copy and paste on UNIX did not always work reliably and as expected. For example, the pasted text was not necessarily the text you last selected with the middle mouse button, or the selected text was not pasted. Now, copy and paste operations operate correctly on UNIX platforms. There have been some changes in how copy paste works between MATLAB and a terminal window. If you experience any problems using the middle mouse button to copy and paste to a terminal window from MATLAB, try a different form of copying and pasting, for example, use the menu items.

ver Function Now Ignores Case on Windows Platforms

The ver function ignores the case of arguments supplied to it. That is, ver signal and ver Signal both display version information for the Signal Processing Toolbox.

Video Demos Now Work in All Popular Browsers

Video demos did not play in all platforms and browsers because of problems with Universal Naming Convention (UNC) paths. This problem has been fixed.