主要内容

矩阵C API

使用C Matrix API创建使用mxArray表示MATLAB数据

编写与MATLAB兼容的C语言程序®R2017b或更早的版本,使用C Matrix API中的函数。这些函数与mxArray数据结构,并用于构建C MEX函数或C引擎应用程序。

请注意

尽可能选择c++而不是C应用程序。

C Matrix API有两个版本。

  • 交错复杂的API包含了MATLAB R2018a的C矩阵API功能。有关更多信息,请参见MATLAB支持MEX函数中交错复杂API

  • 单独的复杂的API包含了MATLAB R2017b的C矩阵API功能。

有关使用这些库函数的示例,请参见:

谨慎

C Matrix API与MATLAB数据API为c++,它支持现代c++特性。中描述的MATLAB API中的函数不能与C Matrix API中的函数一起使用编写MATLAB中可调用的c++函数(MEX文件)从c++调用MATLAB

C数据类型

mxArray C类型MATLAB数组
mwSize C类型为mxArray大小值
mwIndex C类型为mxArray索引值
mwSignedIndex 有符号整数C类型用于mxArray大小值
mxChar 字符串数组的类型
mxLogical 逻辑数组的类型
mxComplexity 标志,指定数组是否有虚组件

mxArray属性

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

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

全部展开

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

主题

Baidu
map