API para manipular matrices en C
mxArray
para representar datos de MATLABPara escribir programas de C que funcionen con la versión R2017b de MATLAB® o anteriores, utilice las funciones en la API para manipular matrices en C. Estas funciones trabajan con la estructura de datos de mxArray
y se emplean para crear funciones de C MEX o aplicaciones del motor C.
Nota
En la medida de lo posible, elija las aplicaciones de C++ en lugar de las de C.
Existen dos versiones de la API para manipular matrices en C.
La API compleja entrelazada contiene las funciones de la API para manipular matrices en C a partir de MATLAB R2018a. Para obtener más información, consulte MATLAB Support for Interleaved Complex API in MEX Functions.
La API compleja separada contiene las funciones de la API para manipular matrices en C a partir de MATLAB R2017b.
Para ver ejemplos sobre cómo usar estas funciones de biblioteca, consulte:
Consulte las funciones individuales para obtener información ilustrativa. Por ejemplo, consulte
mxIsChar
.
Precaución
La API para manipular matrices en C no es compatible con API de datos de MATLAB para C++, que admite funcionalidades de C++ moderno. No puede usar las funciones de la API para manipular matrices en C con funciones de las API de MATLAB que se describen en Escribir funciones de C++ que se pueden llamar desde MATLAB (archivos MEX) o en Llamar a MATLAB desde C++.
Tipos de datos de C
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 |
Atributos de mxArray
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 |
Crear, consultar y acceder a los tipos de datos
Eliminar y duplicar mxArray
mxDestroyArray | Free dynamic memory allocated by MXCREATE* functions |
mxDuplicateArray | Make deep copy of array |
Convertir mxArray
Administración de memoria de datos
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 |
Aserciones
Constantes
mxIsInf | Determine whether input is infinite |
mxIsFinite | Determine whether input is finite |
mxIsNaN | Determine whether input is NaN (Not-a-Number) |
Temas
- 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
.