主要内容

创建c++墨西哥人函数矩阵与C API

请注意

MATLAB®提供了一个API,使用现代c++语义和设计模式MATLAB c++数据API。MathWorks建议您创建墨西哥人与这个API函数。有关更多信息,请参见从MATLAB编写c++函数调用(墨西哥人文件)

如果你的墨西哥人功能必须运行在MATLAB R2017b或更早,那么你必须使用矩阵C API函数在c++应用程序中。墨西哥人与矩阵C API函数构建c++语言支持所有标准。金宝app这个话题讨论具体的c++语言创建和使用墨西哥人文件时需要考虑的问题。

您可以使用MATLAB C c++应用程序中的代码示例。例如,请参见mexcpp.cppc++类的例子,其中包含两个C和c++语句。

创建你的c++源文件

MATLAB c++源代码示例使用. cpp文件扩展名。扩展. cpp是明确的和被c++编译器。其他可能的扩展包括。C,.cc,. cxx

编译和链接

建立一个c++墨西哥人文件,类型:

墨西哥人文件名. cpp

在哪里文件名源代码文件的名称,在MATLAB的路径上。

您可以运行一个c++墨西哥人与MATLAB的相同版本文件只在系统文件被编译。

内存问题类的析构函数

不使用mxFreemxDestroyArray函数在一个c++类的析构函数用于MEX-function。如果MEX-function抛出错误,MATLAB清理MEX-file变量,描述自动清理临时数组在墨西哥人文件

如果出现错误,导致对象的范围,MATLAB调用c++析构函数。直接在析构函数中释放内存意味着MATLAB和析构函数释放相同的内存,它可以腐败的记忆。

使用mexPrintf打印MATLAB命令窗口

使用cout或c语言printf功能不正常工作在c++中墨西哥人文件。使用mexPrintf函数来代替。

c++类的例子

墨西哥人文件mexcpp.cpp展示了如何使用c++代码用C语言文件墨西哥人。的例子使用函数矩阵C API。它使用成员函数,构造函数、析构函数和iostream包含文件。

该函数定义一个类myData与成员函数显示set_data和变量v1v2。它构造一个对象d类的myData并显示的初始化值v1v2。然后,它集v1v2你的输入和显示新值。最后,删除操作者清理对象。

建造这个示例中,将该文件复制到MATLAB路径和命令提示符类型:

墨西哥人mexcpp.cpp

调用语法mexcpp (num1, num2)

c++文件处理的例子

mexatexit.cpp示例显示了c++文件处理功能。比较它与C代码的例子mexatexit.c,它使用mexAtExit函数。

c++的例子

c++使用一个例子fileresource类来处理文件打开和关闭功能。墨西哥人函数调用这个类的析构函数,关闭数据文件。这个示例还在屏幕上打印一条消息在执行数据文件的操作。然而,在这种情况下,唯一的C文件操作执行写操作,

构建mexatexit.cpp墨西哥人文件,将文件复制到MATLAB路径和类型:

墨西哥人mexatexit.cpp

类型:

z =“对于c++ MEX-file”;mexatexit (x) mexatexit (z)清晰mexatexit
写入数据文件。写入数据文件。

显示的内容matlab.data

类型matlab.data
我为c++ MEX-file输入字符串

C的例子

注册的C代码例子mexAtExit函数执行清理任务(关闭数据文件)时,墨西哥人文件清除。这个例子在屏幕上打印一条消息使用mexPrintf当执行文件操作打开外部文件,,文件关闭

构建mexatexit.c墨西哥人文件,将文件复制到MATLAB路径和类型:

墨西哥人mexatexit.c

运行示例。

x =“我的输入字符串”;mexatexit (x)
matlab.data打开文件。写入数据文件。

清晰的墨西哥人的文件。

清晰的mexatexit
matlab.data关闭文件。

显示的内容matlab.data

类型matlab.data
我的输入字符串

另请参阅

|

相关的例子

更多关于