MATLAB Release Notes Previous page   Next Page

Major Bug Fixes

MATLAB 6.5.1 includes these major bug fixes:

Seeking Within a File

In Release 13, when you opened a file in write-only ('wb') mode, you could not seed to a position in the file without first seeking to the beginning of the file. The fseek function has been fixed to allow seeking from any position of the file.

Reshaping to More Than Two Dimensions

In Release 13, under certain circumstances, reshaping an array to have more than two dimensions produced a two dimensional result. This has been corrected.

mkdir No Longer Fails On Windows NT

In Release 13, if on Windows NT you called the dir, exist, isdir, or what function on a nonexistent directory name on a network drive, it caused a windows handle to remain open to that directory name until you exit the MATLAB session. This condition caused any attempts to use mkdir on that directory to fail. This problem also affected the mkdir command when run from a DOS command prompt. This condition would persist until you exited MATLAB, thus freeing the handle.

This bug is fixed in this release.

Using sqrt with Complex Input

In Release 13, under certain circumstances, the sqrt function incorrectly produced a real result when called with a complex input. This bug has been corrected.

Multiplying Matrices with Non-Double Entries

In Release 13, MATLAB gave an incorrect answer or crashed for expressions of the following forms:

when either A or B was a numeric, non-double value (single, int32, etc.). This has been fixed for this release.

Sorting a Sparse Row Vector or Matrix

In Release 13, a segmentation violation occurred when you used the command sort(S,2) to sort a sparse row vector or to sort a sparse matrix along its rows. This bug is fixed in this release.

diff Produces Correct Results with Logical Inputs

In Release 13, the diff function could produce an incorrect result when you passed a logical array to it. This bug is fixed in this release.

Opening Modal Dialog with Third-Party GUI Open

In Release 13, MATLAB would occasionally hang if the user tried to open a modal dialog box when a third-party GUI was open. This no longer happens.

Serial Port Object with Latest Windows Service Pack

Under certain hardware configurations, or when using the latest Service Pack from Microsoft Windows, the serial port object in both MATLAB and the Instrument Control Toolbox could cause MATLAB to crash or hang. This problem is resolved in this release.

Several additional problems affecting the serial port have also been identified and fixed:

  1. The serial port object now obeys all supported parity configurations.
  2. The serial port object now obeys all supported flow control configurations.
  3. On Windows, serial ports higher than COM8 were not recognized by MATLAB. As of this release, MATLAB supports up to 256 ports.
  4. The serial port object generates output empty events after running the serial port object continuously.

OpenGL Problem Using Notebook

This version of MATLAB uses an improved algorithm for selecting pixel formats when using the UseGenericOpenGL feature on Windows. This improvement fixes rendering problems seen with Notebook.

For information on graphics rendering, see Tech Note 1201.

Lcc C Compiler Fixed to Handle Large C Files

Lcc version 2.4.1 MathWorks patch 1.29 corrects a bug encountered when compiling very large C files. Although this bug has only been observed when using large Stateflow® models, we suggest that you upgrade to the new version to avoid potential problems when compiling MEX-files.

If you choose not to upgrade your version of Lcc, you can select a different C compiler using mex -setup from the MATLAB command line.

Bug Fixes in MATLAB Interface to COM

This release includes the following bug fixes in the COM interface:

Blank Spreadsheet Cells Returned as NaNs

When reading from a Microsoft Excel spreadsheet in a COM environment where MATLAB is the COM client and Excel the server, MATLAB now returns any empty cells in the spreadsheet as NaNs. In MATLAB 6.5 (Release 13), this same operation had returned a matrix of empty ([]) values.

For example, if the range A1 to D3 in a currently active workbook sheet contains no data, MATLAB 6.5.1 returns the following matrix of NaN values:

Importing Excel Worksheets Containing Currency Format

In MATLAB 6.5, using a COM interface to Excel to import worksheet data containing currency format failed with either a field access error or segmentation violation. This bug is fixed in this release.

Getting the Forms Font Interface

In MATLAB 6.5, attempts to get the Font interface from a forms.textbox.1 control, as done in the second line below, caused MATLAB to crash.

This bug is fixed in this release.

Programmatic Identifiers Containing Space Characters

Using the actxcontrol function with a ProgID argument containing one or more spaces failed in MATLAB 6.5. This bug is fixed in this release. For example, the following command now works:

Naming of Interfaces Returned by invoke or get

In MATLAB 6.5, interfaces returned by the invoke and get functions were given a name composed of the programmatic identifier (ProgID) for the component and the name of the method or property being invoked. In cases where a method or property implemented multiple interface types, this naming algorithm resulted in interface names that were not always unique.

For example, when invoking a method that returns an Excel and a Word interface, you could obtain any number of either type of interface (Excel or Word), but you could not obtain interfaces of both types. In such cases, you might be unable to access methods and properties of this interface.

In this release, interface names constructed by MATLAB are composed of the name of the type library and the class name, thus ending this potential naming conflict. If you invoke the method described in the last paragraph, MATLAB now returns the following for any Excel interfaces that you request:

And MATLAB returns a different handle for Word interfaces:

Optional Input and Output Arguments Supported

MATLAB now supports optional input and output arguments passed in COM method calls. These arguments are declared as [in, optional] and [out, optional] respectively.

Memory Leak with MATLAB as COM Client

In Version 6.5, a memory leak developed under certain circumstances when MATLAB was configured as a COM client. This was caused by internal MATLAB code failing to release memory allocated by the method StringFromCLSID. This bug is fixed in this release.

Support for Multiple Type Libraries

MATLAB now supports multiple type libraries. If a COM object has many interfaces that are described in multiple type libraries, MATLAB can now retrieve the information correctly.

MATLAB Now Supports Skipping an Optional Argument

When calling ActiveX automation server methods, you can skip any optional arguments in the argument list by specifying that argument value as an empty matrix ([]). For example, the Add method shown below accepts as many as four optional arguments:

To call this method, specifying values for After and Count, but no values for Before or Type, use this syntax.

Use [] for any arguments you skip, and that also precede the ones you do specify in the argument list. In this case, the Before argument is not specified but two subsequent arguments are.

Saving COM Objects Created with actxserver

Release 13 does not support saving COM objects that have been created with the actxserver function. You can use save only on control objects (created with actxcontrol). Attempting to use save on a COM server object causes MATLAB to hang temporarily, and eventually crash.

This bug has been fixed in this release so that if you now attempt to save a COM server object, MATLAB saves the object and any base properties of the object, but does not attempt to save any interfaces that might exist.

The same behavior applies to the pack function on COM objects.

This example creates a server running Microsoft Excel, adds a new property to the object, and saves it to the file excelserver.mat. It then reloads the server from the MAT-file.

Creating Certain Servers That Do Not Have Type Libraries

In the Release 12.1 and Release 13 releases, the actxserver function generated an error when attempting to create a COM object for certain servers. One error commonly returned by actxserver in these releases was

This has now been fixed in this release.

Creating Microsoft Controls

Earlier versions of MATLAB would crash if you attempted to create certain Microsoft COM controls with the actxcontrol function. Examples of these controls, by programmatic identifier (ProgID), are shown below. MATLAB now successfully creates the controls.

ActiveX Controls Created with Visual Basic 6.0

In Release 13, if you attach a callback routine to an event, and this event is eventually fired by a control created in Visual Basic 6.0, an error dialog box appears with the message "Run-Time error."

This has been fixed in this release.

Type Mismatch Error Fixed

Some COM objects may define methods that pass scalar inputs by reference. This might appear in a type library signature as shown here for the x input:

Note that when input or output is not specifically stated, as is the case here for x, MATLAB defaults to input ([in]). So the line shown above is interpreted by MATLAB as

In MATLAB, the [in] and by-reference (*) specifications are considered incompatible for scalar arguments. In Release 13, MATLAB ignores the by-reference specifier for scalar inputs and passes such arguments by value instead. Thus, any modified value for such an argument is not received by the calling function. You may also see a type mismatch error displayed, even when trying to access valid control methods.

MATLAB 6.5.1 fixes this bug by treating the [in] specifier for scalar references as if it were [in,out].

In this example using MATLAB syntax, the GetWinVersionX function passes six double arguments by reference, yet none are returned in MATLAB 6.5:

In MATLAB 6.5.1, all scalar reference arguments specified (or defaulting to) [in] are treated as [in,out], and all references cause a value to be returned:

Note that this bug affects only scalar arguments. The VT_DISPATCH and VT_VOID types are not affected.

Bug Fixes in Creating GUIs

This release includes the following bug fixes related to creating, converting, and exporting GUIs:

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:

This problem has been fixed.

Using GUIDE on Existing GUIs 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:

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:

These problems have been fixed.

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.

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:

This problem has been fixed.


Previous page  Reading and Writing L*a*b* Color Data Upgrading from an Earlier Release Next page

© 1994-2005 The MathWorks, Inc.