现有的C代码里调用的是matlab的接口,需要改为调用北太天元的接口,如:
#include "bex/bex.h"
void bexFunction()
bxArray
……
方法如下
1.新建<mex.h>头文件,与要编译的C文件放同一个文件夹中
#include <stdio.h> #include <stdlib.h> #include <string.h> #define mxIsNaN isnan #define mxCreateDoubleMatrix bxCreateDoubleMatrix #define mxCreateLogicalMatrix bxCreateLogicalMatrix #define mxCreateStructMatrix bxCreateStructMatrix #define mxCreateCellMatrix bxCreateCellMatrix #define mxCreateSparse bxCreateSparse #define mxCreateString bxCreateString #define mxCreateCharMatrixFromStrings bxCreateCharMatrixFromStrings #define mxCreateDoubleScalar bxCreateDoubleScalar #define mxAddField bxAddField #define mxSetField bxSetField #define mxSetCell bxSetCell #define mxGetNumberOfElements bxGetNumberOfElements #define mxGetNumberOfFields bxGetNumberOfFields #define mxGetDoubles bxGetDoubles #define mxGetLogicals bxGetLogicals #define mxGetField bxGetField #define mxGetFieldNameByNumber bxGetFieldNameByNumber #define mxGetCell bxGetCell #define mxGetN bxGetN #define mxGetM bxGetM #define mxGetNzmax bxGetNzmax #define mxGetJc bxGetJc #define mxGetIr bxGetIr #define mxGetPr bxGetPr #define mexErrMsgTxt bxErrMsgTxt #ifdef _WIN32 #define mystrcmp _stricmp #else #include <strings.h> #define mystrcmp strcasecmp #endif
2.在北太天元命令窗口输入“bex 文件名.c”,编译对应的C文件。
编译后会出现以下对话并在文件夹下生成“文件名.bexw64”等文件,例如

注意:
1)需安装C语言编译器,建议 VS 2019。
2)编译过程中出现乱码,是因为系统显示字体的原因。在系统“语言和区域”设置中,打开“使用Unicode UTF-8提供全球语言支持”选项,如下图所示,再次运行bex 文件名.c,显示正常。


