矩阵C API

用MATLAB编写C/ c++程序® mxArray数据结构

要编写使用MATLAB R2017b或更早的C程序,请使用C矩阵API中的函数。这些函数与mxArray数据结构和用于构建C MEX函数或C发动机应用。

请注意

MathWorks公司建议,只要有可能,选择C ++在C应用程序。有关更多信息,请参见从c++调用MATLABc++库从MATLAB中直接调用c++库函数。

有两个版本的C矩阵API。

有关使用这些库函数的例子,请参阅:

谨慎

的C矩阵API是不兼容的MATLAB数据API,它支持现代c+金宝app+特性。类中的函数不能使用C矩阵API函数c++墨西哥人的应用程序对于C MATLAB引擎API ++

C数据类型

mxArray C类型MATLAB排列
mwSize 大小值的类型
mwIndex 类型索引值
mwSignedIndex 大小值的带符号整数类型
mxChar 字符串数组的类型
mxLogical 键入逻辑阵列
mxComplexity 指定数组是否有虚组件的标志

mxArray属性

mxIsNumeric 判断数组是否为数值型
mxIsComplex 确定数据是否复杂
mxGetNumberOfDimensions 数组中的维数
mxGetElementSize 存储每个数据元素所需的字节数
mxGetDimensions 维度数组指针
mxSetDimensions 修改维数和每个维的大小
mxGetNumberOfElements 数字数组中元素的数目
mxCalcSingleSubscript 从第一个元素到所需元素的偏移量
mxGetM 数组中的行数
mxSetM 设置数组中的行数
mxGetN 在阵列的列数
mxSetN 设置数组中的列数
mxIsEmpty 判断数组是否为空
mxIsFromGlobalWS 确定数组是否被复制MATLAB全球的工作区

创建、查询和访问数据类型

全部展开

mxCreateDoubleMatrix 二维,双精度,浮点数组
mxCreateDoubleScalar 标量、双精度数组初始化为指定值
mxCreateNumericMatrix 二维数值矩阵
mxCreateNumericArray 的N- d数字数组
mxCreateUninitNumericMatrix 未初始化的二维数值矩阵
mxCreateUninitNumericArray 未初始化的N-D数字数组
mxIsScalar 判断数组是否是标量数组
mxGetScalar 数组中第一个数据元素的实分量
mxIsDouble 确定是否mxArray数据表示为双精度浮点数
mxGetDoubles 实际数据元素mxDOUBLE_CLASS排列
mxSetDoubles 设置实际的数据元素mxDOUBLE_CLASS排列
mxIsSingle 确定数组是否将数据表示为单精度浮点数
mxGetSingles 实际数据元素mxSINGLE_CLASS排列
mxSetSingles 设置实际的数据元素mxSINGLE_CLASS排列
mxGetPr (不推荐)中的实际数据元素mxDOUBLE_CLASS排列
mxSetPr (不推荐)设置实际的数据元素mxDOUBLE_CLASS排列
mxIsInt8 确定数组是否将数据表示为带符号的8位整数
mxGetInt8s 实际数据元素mxINT8_CLASS排列
mxSetInt8s 设置实际的数据元素mxINT8_CLASS排列
mxIsUint8 确定数组是否将数据表示为无符号8位整数
mxGetUint8s 实际数据元素mxUINT8_CLASS排列
mxSetUint8s 设置实际的数据元素mxUINT8_CLASS排列
mxIsInt16 确定数组是否将数据表示为带符号的16位整数
mxGetInt16s 实际数据元素mxINT16_CLASS排列
mxSetInt16s 设置实际的数据元素mxINT16_CLASS排列
mxIsUint16 确定数组是否将数据表示为无符号16位整数
mxGetUint16s 实际数据元素mxUINT16_CLASS排列
mxSetUint16s 设置实际的数据元素mxUINT16_CLASS排列
mxIsInt32 确定数组是否将数据表示为带符号的32位整数
mxGetInt32s 实际数据元素mxINT32_CLASS排列
mxSetInt32s 设置实际的数据元素mxINT32_CLASS排列
mxIsUint32 确定数组是否将数据表示为无符号的32位整数
mxGetUint32s 实际数据元素mxUINT32_CLASS排列
mxSetUint32s 设置实际的数据元素mxUINT32_CLASS排列
mxIsInt64 确定数组是否将数据表示为带符号的64位整数
mxGetInt64s 实际数据元素mxINT64_CLASS排列
mxSetInt64s 设置数据元素mxINT64_CLASS排列
mxIsUint64 确定数组是否将数据表示为无符号64位整数
mxGetUint64s 实际数据元素mxUINT64_CLASS排列
mxSetUint64s 设置实际的数据元素mxUINT64_CLASS排列
mxGetComplexDoubles 中的复杂数据元素mxDOUBLE_CLASS排列
mxSetComplexDoubles 设置复杂的数据元素mxDOUBLE_CLASS排列
mxGetComplexSingles 中的复杂数据元素mxSINGLE_CLASS排列
mxSetComplexSingles 设置复杂的数据元素mxSINGLE_CLASS排列
mxGetImagData 数字中虚构的数据元素mxArray
mxSetImagData 在数字设定假想的数据元素mxArray
mxGetPi (不推荐)虚构的数据元素mxDOUBLE_CLASS排列
mxSetPi (不推荐)设置虚构的数据元素mxDOUBLE_CLASS排列
mxGetComplexInt8s 中的复杂数据元素mxINT8_CLASS排列
mxSetComplexInt8s 设置复杂的数据元素mxINT8_CLASS排列
mxGetComplexUint8s 中的复杂数据元素mxUINT8_CLASS排列
mxSetComplexUint8s 设置复杂的数据元素mxUINT8_CLASS排列
mxGetComplexInt16s 中的复杂数据元素mxINT16_CLASS排列
mxSetComplexInt16s 设置复杂的数据元素mxINT16_CLASS排列
mxGetComplexUint16s 中的复杂数据元素mxUINT16_CLASS排列
mxSetComplexUint16s 设置复杂的数据元素mxUINT16_CLASS排列
mxGetComplexInt32s 中的复杂数据元素mxINT32_CLASS排列
mxSetComplexInt32s 设置复杂的数据元素mxINT32_CLASS排列
mxGetComplexUint32s 中的复杂数据元素mxUINT32_CLASS排列
mxSetComplexUint32s 设置复杂的数据元素mxUINT32_CLASS排列
mxGetComplexInt64s 中的复杂数据元素mxINT64_CLASS排列
mxSetComplexInt64s 设置复杂的数据元素mxINT64_CLASS排列
mxGetComplexUint64s 中的复杂数据元素mxUINT64_CLASS排列
mxSetComplexUint64s 设置复杂的数据元素mxUINT64_CLASS排列
mxGetPi (不推荐)虚构的数据元素mxDOUBLE_CLASS排列
mxSetPi (不推荐)设置虚构的数据元素mxDOUBLE_CLASS排列
mxCreateSparse 二维稀疏阵列
mxCreateSparseLogicalMatrix 2-d,稀疏,逻辑阵列
mxIsSparse 判断输入是否为稀疏数组
mxGetNzmax IR、PR和PI数组中的元素数
mxSetNzmax 对于非零元素集的存储空间
mxGetIr 稀疏矩阵IR阵列
mxSetIr 稀疏阵列的红外阵列
mxGetJc 稀疏矩阵JC阵
mxSetJc JC阵列的稀疏阵列
mxGetData 非数值的数据元素mxArray
mxSetData 设置指向非数值数据元素的指针mxArray
mxCreateString 数组初始化为指定的字符串
mxCreateCharMatrixFromStrings 二维mxChar数组初始化为指定值
mxCreateCharArray 一天mxChar排列
mxIsChar 确定输入是否是mxChar排列
mxGetChars 指向字符数组数据的指针
mxIsLogical 判断数组是否为mxLogical类型
mxIsLogicalScalar 判断标量数组是否为mxLogical类型
mxIsLogicalScalarTrue 判断类型mxLogical的标量数组是否为真
mxClassID 标识数组类的枚举值
mxCreateLogicalArray 天假逻辑阵列
mxCreateLogicalMatrix 二维数组逻辑
mxCreateLogicalScalar 标量、逻辑阵列
mxGetLogicals 指向逻辑数组数据的指针
mxIsClass 判断数组是否是指定类的对象
mxGetClassID 类的数组
mxGetClassName 数组作为字符串的类
mxSetClassName 结构数组MATLAB对象数组
mxGetProperty 公共财产的价值MATLAB对象
mxSetProperty 的公共属性的值MATLAB对象
mxCreateStructMatrix 2-d结构阵列
mxCreateStructArray 一天结构数组
mxIsStruct 确定输入是否为结构数组
mxGetField 指向结构数组中的字段值的指针,给定索引和字段名
mxSetField 设置结构数组中的字段值,给定索引和字段名
mxGetNumberOfFields 在结构数组字段的数
mxGetFieldNameByNumber 指针从结构阵列字段名,给定的场号
mxGetFieldNumber 结构数组中的字段号,给定字段名
mxGetFieldByNumber 指向结构数组中的字段值的指针,给定索引和字段号
mxSetFieldByNumber 设置结构数组中的字段值,给定索引和字段号
mxAddField 向结构数组中添加字段
mxRemoveField 从结构数组中移除字段
mxCreateCellMatrix 二维单元阵列
mxCreateCellArray 一天单元阵列
mxIsCell 确定输入是否为单元格数组
mxGetCell 指向单元格数组中元素的指针
mxSetCell 设置单元格数组的内容

删除和重复数据mxArray

mxDestroyArray 由MXCREATE*函数分配的空闲动态内存
mxDuplicateArray 对数组进行深度复制

转换mxArray

全部展开

mxMakeArrayComplex 真正的转换mxArray到复杂,保存真实数据
mxMakeArrayReal 把复杂的mxArray保存真实的数据
mxArrayToString 字符串数组来
mxArrayToUTF8String 数组到字符串的UTF-8编码
mxGetString mxChar数组到c风格的字符串或Fortran字符排列
mxSetClassName 结构数组MATLAB对象数组

数据的内存管理

mxCalloc 为数组分配动态内存,初始化为0,使用MATLAB内存管理器
mxMalloc 使用未初始化的动态内存分配MATLAB内存管理器
mxRealloc 使用重新分配动态内存MATLAB内存管理器
mxFree 由mxCalloc、mxMalloc、mxRealloc、mxArrayToString或mxArrayToUTF8String函数分配的空闲动态内存

断言

mxAssert 检查断言值以进行调试
mxAssertS 检查断言值不打印文本断言

常量

mxIsInf 确定输入是否为无穷大
mxIsFinite 确定输入是否是有限的
mxIsNaN 判断输入是否是NaN (Not-a-Number)

主题

在C MEX文件中传递字符串

这个例子说明了如何字符串传递到与C矩阵API建立了一个MEX功能。

在C MEX文件中传递标量值

这个示例展示了如何编写传递标量值的MEX文件。

处理C MEX文件中的稀疏数组

这个例子展示了如何使用C矩阵API来填充一个稀疏矩阵。

在C MEX文件中处理8位、16位、32位和64位数据

这个例子说明了如何使用16位无符号整数,在使用C矩阵API一个MEX文件。

在C MEX文件中传递结构和单元数组

这个示例展示了如何将结构和单元数组传递给用C Matrix API构建的MEX文件。

操作C MEX文件中的多维数字数组

可以使用类型化数据访问函数操作多维数字数组mxGetDoublesmxGetComplexDoubles