矩阵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功能。
有关使用这些库函数的示例,请参见:
有关示例信息,请参阅个别函数。例如,请参见
mxIsChar
.
谨慎
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全球的工作区 |
创建、查询和访问数据类型
删除并复制mxArray
mxDestroyArray |
由MXCREATE*函数分配的空闲动态内存 |
mxDuplicateArray |
对数组进行深度复制 |
转换mxArray
数据的内存管理
常量
mxIsInf |
确定输入是否无穷大 |
mxIsFinite |
确定输入是否有限 |
mxIsNaN |
确定输入是否为NaN(非数字) |
主题
- 在C MEX文件中传递字符串
这个例子展示了如何将字符串传递给用C Matrix API构建的MEX函数。
- 在C MEX文件中传递标量值
这个例子展示了如何编写一个传递标量值的MEX文件。
- 处理稀疏数组在C MEX文件
这个例子展示了如何使用C matrix API填充稀疏矩阵。
- 处理C MEX文件中的8-、16-、32-和64-位数据
这个例子展示了如何使用C Matrix API在MEX文件中使用无符号16位整数。
- 在C MEX文件中传递结构和单元格数组
这个例子展示了如何将结构和单元格数组传递给用C Matrix API构建的MEX文件。
- 在C MEX文件中操作多维数值数组
您可以通过使用类型化数据访问函数来操作多维数值数组
mxGetDoubles
而且mxGetComplexDoubles
.