Menu
MathWorks MATLAB R2018a v9.4.0.929293 (Win / macOS / Linux) 43.7 GB Includes MathWorks MATLAB R2018a Update 5 only Millions of engineers and scientists worldwide use MATLAB to analyze and design the systems and products transforming our world. MATLAB is in automobile active safety systems, interplanetary spacecraft, health monitoring devices, smart power grids, and LTE cellular networks. MATLAB Runtime 9.0.1, for R2016a, is intended to work with MATLAB 9.0, which is also R2016a. MATLAB Runtime 9.0, for R2015b, is intended to work with MATLAB 8.6, which is also R2015b. Online versions of MATLAB Runtime are only available for releases after R2012a. Older releases of MATLAB Runtime were shipped with MATLAB Compiler. 2 GB for MATLAB only, 4–6 GB for a typical installation RAM: 2 GB (With Simulink, 4 GB is required; With Polyspace, 4 GB per core is recommended) Hardware accelerated graphics card supporting. MATLAB Version: 9.4.0.813654 (R2018a) MATLAB License Number: 00000000 Operating System: Microsoft Windows 10 Enterprise Version 10.0 (Build 14393) Java Version: Java 1.8.0144-b01 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode - MATLAB Version 9.4 (R2018a) License 00000000 Simulink Version 9.1 (R2018a) License. MATLAB R2018a (version 9.4) is installed in SERC. MATLAB, the language of technical computing, is a programming environment for algorithm development, data analysis, visualization, and numeric computation. Simulink® is a graphical environment for simulation and Model-Based Design of multidomain dynamic and embedded systems.MATLAB PCT parallel.
MATLAB Support for Interleaved Complex API in MEX Functions
When a matrix of complex numbers is represented in computer memory, there are several choices for the location and order of storage. Before MATLAB® Version 9.4 (R2018a), MATLAB used a separate storage representation. The real and the imaginary parts of the numbers were stored separately. MATLAB uses an interleaved storage representation for C and Fortran language MEX files, where the real and imaginary parts are stored together. Interleaved complex refers to this representation.
Since many mathematical libraries use an interleaved complex representation, using the same representation in your MEX functions eliminates the need to translate data. This simplifies your code and potentially speeds up the processing when large data sets are involved.
This change does not affect the MATLAB language. You can continue to use the functionality described in Complex Numbers without any modification of your functions and scripts.
Separate Complex API and Interleaved Complex API
There are two versions of the C Matrix API and Fortran Matrix API.
- The separate complex API contains the C and Fortran Matrix API functionality in MATLAB R2017b and earlier.
- The interleaved complex API contains the C Matrix API functionality as of MATLAB R2018a and the Fortran Matrix API functionality as of MATLAB R2018a Update 3.
To build MEX files with the interleaved complex API, use the
mex
release-specific build option-R2018a
. To build MEX files with the separate complex API, use the -R2017b
build option. The mex
command uses the separate complex API by default. However, in a future version of MATLAB, mex
will use the interleaved complex API (-R2018a
option) by default and then you need to modify your build command. Therefore, to ensure the desired behavior across versions of MATLAB, add the -R2017b
option to your existing build scripts. To write code to support both APIs, see Add MX_HAS_INTERLEAVED_COMPLEX to Support Both Complex Number Representations.To run a Fortran MEX file built with the interleaved complex API in MATLAB R2018a, you must use MATLAB R2018a Update 3.
Matrix API Changes Supporting Interleaved Complex
See Full List On Serc.iisc.ac.in
The following changes to the C and Fortran Matrix APIs support interleaved complex.
- New typed data access functions. For more information, see Typed Data Access in C MEX Files.MATLAB
mxArray
TypesC Typed Data Access FunctionsFortran Typed Data Access FunctionsmxDOUBLE_CLASS
mxGetDoubles
mxSetDoubles
mxGetComplexDoubles
mxSetComplexDoubles
mxGetDoubles
mxSetDoubles
mxGetComplexDoubles
mxSetComplexDoubles
mxSINGLE_CLASS
mxGetSingles
mxSetSingles
mxGetComplexSingles
mxSetComplexSingles
mxGetSingles
mxSetSingles
mxGetComplexSingles
mxSetComplexSingles
mxINT8_CLASS
mxGetInt8s
mxSetInt8s
mxGetComplexInt8s
mxSetComplexInt8s
mxGetInt8s
mxSetInt8s
mxGetComplexInt8s
mxSetComplexInt8s
mxUINT8_CLASS
mxGetUint8s
mxSetUint8s
mxGetComplexUint8s
mxSetComplexUint8s
mxGetUint8s
mxSetUint8s
mxGetComplexUint8s
mxSetComplexUint8s
mxINT16_CLASS
mxGetInt16s
mxSetInt16s
mxGetComplexInt16s
mxSetComplexInt16s
mxGetInt16s
mxSetInt16s
mxGetComplexInt16s
mxSetComplexInt16s
mxUINT16_CLASS
mxGetUint16s
mxSetUint16s
mxGetComplexUint16s
mxSetComplexUint16s
mxINT32_CLASS
mxGetInt32s
mxSetInt32s
mxGetComplexInt32s
mxSetComplexInt32s
mxGetInt32s
mxSetInt32s
mxGetComplexInt32s
mxSetComplexInt32s
mxUINT32_CLASS
mxGetUint32s
mxSetUint32s
mxGetComplexUint32s
mxSetComplexUint32s
mxGetUint32s
mxSetUint32s
mxGetComplexUint32s
mxSetComplexUint32s
mxINT64_CLASS
mxGetInt64s
mxSetInt64s
mxGetComplexInt64s
mxSetComplexInt64s
mxGetInt64s
mxSetInt64s
mxGetComplexInt64s
mxSetComplexInt64s
mxUINT64_CLASS
mxGetUint64s
mxSetUint64s
mxGetComplexUint64s
mxSetComplexUint64s
mxGetUint64s
mxSetUint64s
mxGetComplexUint64s
mxSetComplexUint64s
- Matrix API functions added to the
-R2018a
API:mxMakeArrayComplex (C)
andmxMakeArrayComplex (Fortran)
mxMakeArrayReal (C)
andmxMakeArrayReal (Fortran)
- Matrix API functions not supported in the
-R2018a
API:mxGetPi (C)
andmxGetPi (Fortran)
mxGetImagData (C)
andmxGetImagData (Fortran)
mxSetPi (C)
andmxSetPi (Fortran)
mxSetImagData (C)
andmxSetImagData (Fortran)
- The behavior of these Matrix API functions changes in the
-R2018a
API. In addition, these functions are to be phased out.mxGetPr (C)
andmxGetPr (Fortran)
mxSetPr (C)
andmxSetPr (Fortran)
- The behavior of these Matrix API functions changes in the
-R2018a
API:mxGetData (C)
andmxGetData (Fortran)
mxGetElementSize (C)
andmxGetElementSize (Fortran)
- The behavior of these Fortran Matrix API functions changes in the
-R2018a
API:
Writing MEX Functions with Interleaved Complex API
To learn how to write MEX functions using the interleaved complex API, see Handle Complex Data in C MEX File in C applications or Handle Complex Fortran Data.
Cached
MEX Functions Created in MATLAB R2017b and Earlier
If you already build MEX functions, MEX S-functions, or standalone MATLAB engine and MAT-file applications, then you should review the Do I Need to Upgrade My MEX Files to Use Interleaved Complex API? topic. To help transition your MEX files and S-functions to the interleaved complex API, MATLAB maintains a compatibility interface. To build MEX files with the compatibility interface, use the
mex
-R2017b
flag. If your code processes complex numbers, you might notice a performance impact as MATLAB adapts your data to the interleaved complex format.The
mex
command uses the -R2017b
API by default. However, in a future version of MATLAB, mex
will use the interleaved complex API -R2018a
by default and then you need to modify your build command. Therefore, to ensure the desired behavior across versions of MATLAB, add the compatibility flag -R2017b
to your build scripts.