VC调用MATLAB引擎实战:engOutputBuffer与MATLAB交互

需积分: 30 54 下载量 72 浏览量 更新于2024-08-07 收藏 5.47MB PDF 举报
"MATLAB实用教程, 徐金明主编, 清华大学出版社与北京交通大学出版社出版" 在MATLAB编程中,与VC++(Visual C++)集成是常见的需求,以便利用MATLAB强大的数学计算和图形处理能力。MATLAB提供了一个称为MATLAB引擎的接口,使得VC++可以调用MATLAB的计算环境。本资源主要关注的是如何在VC++中通过MATLAB引擎进行交互。 首先,MATLAB引擎库中的函数以"eng"为前缀,这些函数用于启动和关闭引擎、发送和接收数据以及执行MATLAB命令。下面详细讲解几个关键函数: 1. **engOpen函数**:这是启动MATLAB引擎的函数,它需要一个启动命令字符串(在Windows环境中通常为NULL)。engOpen返回一个指向引擎句柄的指针,成功启动引擎并建立连接时,返回非空指针;如果启动失败,则返回NULL。 2. **engClose函数**:当不再需要MATLAB引擎时,使用这个函数来关闭引擎。engClose接收引擎指针作为参数,成功关闭返回0,失败返回1。 3. **engGetVariable函数**:此函数用于从MATLAB引擎获取变量值。它需要引擎指针和变量名,返回的是一个mxArray类型的指针,代表MATLAB的数组对象。如果获取失败,返回NULL。 4. **engPutVariable函数**:这个函数允许将VC++中的数据写入MATLAB引擎的工作空间。输入参数包括引擎指针、要写入的变量名和一个mxArray类型的数组指针。成功写入返回0,失败返回1。 5. **engEvalString函数**:这个函数允许向MATLAB引擎发送任意的MATLAB命令字符串进行执行。引擎指针和命令字符串是其参数,成功执行返回0,如果引擎已关闭则返回1。 6. **engOutputBuffer函数**:这个函数用于获取MATLAB引擎的输出缓冲区内容,常用于捕获MATLAB命令执行后的结果。具体用法未在描述中详细说明,但它是与engEvalString配合使用的,用来读取命令执行后的文本输出。 结合《MATLAB实用教程》这本书,读者可以更深入地学习MATLAB的基础知识、基本应用和高级应用,如语言基础、数据处理、数值计算、符号运算、图形处理、图形用户界面编程等。这本书适合高校理工科学生和工程技术人员作为教学和参考用书,以提升MATLAB编程技能。 MATLAB引擎为VC++提供了强大的扩展能力,允许开发者在C++程序中无缝集成MATLAB的计算和图形功能。通过熟练掌握上述函数的使用,开发者可以在自己的应用程序中灵活地调用MATLAB的计算资源,提升软件的计算效率和复杂问题解决能力。