C Matrix-API
mxArray
darstellenVerwenden Sie zum Verfassen von C Programmen, die mit MATLAB® R2017b oder früher funktionieren, Funktionen in der C Matrix-API. Diese Funktionen unterstützen die mxArray
-Datenstruktur und werden zur Erstellung von C MEX-Funktionen oder C Engine-Anwendungen verwendet.
Hinweis
Nutzen Sie nach Möglichkeit immer C++ statt C Anwendungen.
Es gibt zwei Versionen der C Matrix-API.
Die komplexe Interleave-API enthält die C Matrix-API Funktionen von MATLAB R2018a. Weitere Informationen finden Sie unter MATLAB Support for Interleaved Complex API in MEX Functions.
Die komplexe separate API enthält die C Matrix-API-Funktionen von MATLAB R2017b.
Beispiele für die Verwendung dieser Bibliotheksfunktionen finden Sie unter:
Beispielinformationen finden Sie unter den einzelnen Funktionen. Beispiele finden Sie unter
mxIsChar
.
Vorsicht
Die C Matrix-API ist nicht mit der MATLAB-Daten-API für C++ kompatibel, weil diese moderne C++ Funktionen unterstützt. Sie können C Matrix-API Funktionen nicht mit Funktionen in den MATLAB-APIs nutzen, die unter Verfassen von C++ Funktionen, die von MATLAB aus aufgerufen werden können (MEX-Dateien) bzw. Aufrufen von MATLAB aus C++ heraus beschrieben sind.
Typen von C Daten
mxArray | C type for MATLAB array |
mwSize | C type for mxArray size values |
mwIndex | C type for mxArray index values |
mwSignedIndex | Signed integer C type for mxArray size values |
mxChar | Type for string array |
mxLogical | Type for logical array |
mxComplexity | Flag specifying whether array has imaginary components |
mxArray-Attribute
mxIsNumeric | Determine whether mxArray is numeric |
mxIsComplex | Determine whether data is complex |
mxGetNumberOfDimensions | Number of dimensions in mxArray |
mxGetElementSize | Number of bytes required to store each data element |
mxGetDimensions | Pointer to dimensions array |
mxSetDimensions | Modify number of dimensions and size of each dimension |
mxGetNumberOfElements | Number of elements in numeric mxArray |
mxCalcSingleSubscript | Offset from first element to desired element |
mxGetM | Number of rows in mxArray |
mxSetM | Set number of rows in mxArray |
mxGetN | Number of columns in mxArray |
mxSetN | Set number of columns in mxArray |
mxIsEmpty | Determine whether mxArray is empty |
mxIsFromGlobalWS | Determine whether mxArray was copied from MATLAB global workspace |
Erstellen und Abfragen von sowie Zugreifen auf Datentypen
Löschen und Duplizieren von mxArray
mxDestroyArray | Free dynamic memory allocated by MXCREATE* functions |
mxDuplicateArray | Make deep copy of array |
Konvertieren von mxArray
Management des Datenspeichers
mxCalloc | Allocate dynamic memory for array, initialized to 0, using MATLAB memory manager |
mxMalloc | Allocate uninitialized dynamic memory using MATLAB memory manager |
mxRealloc | Reallocate dynamic memory using MATLAB memory manager |
mxFree | Free dynamic memory allocated by mxCalloc, mxMalloc, mxRealloc, mxArrayToString, or mxArrayToUTF8String functions |
Zusicherungen (Asserts)
Konstanten
mxIsInf | Determine whether input is infinite |
mxIsFinite | Determine whether input is finite |
mxIsNaN | Determine whether input is NaN (Not-a-Number) |
Themen
- Pass Strings in C MEX File
This example shows how to pass strings to a MEX function built with the C Matrix API.
- Pass Scalar Values in C MEX File
This example shows how to write a MEX file that passes scalar values.
- Handle Sparse Arrays in C MEX File
This example shows how to populate a sparse matrix using the C Matrix API.
- Handle 8-, 16-, 32-, and 64-Bit Data in C MEX File
This example shows how to use unsigned 16-bit integers in a MEX file using the C Matrix API.
- Pass Structures and Cell Arrays in C MEX File
This example shows how to pass structures and cell arrays to MEX files built with the C Matrix API.
- Manipulate Multidimensional Numerical Arrays in C MEX Files
You can manipulate multidimensional numerical arrays by using typed data access functions like
mxGetDoubles
andmxGetComplexDoubles
.