加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

使用MATLAB Engine连接已运行的MATLAB

发布时间:2021-01-12 08:44:59 所属栏目:Linux 来源:网络整理
导读:The MATLAB Engine API允许从C程序访问MATLAB功能.要设置MATLAB Engine会话,可以调用 engOpen 函数.默认情况下,这将启动MATLAB的新实例,专门用于Engine应用程序. 我想要的是使用Engine应用程序中已经运行的MATLAB会话,以便我可以访问它的变量.我需要在Linu

The MATLAB Engine API允许从C程序访问MATLAB功能.要设置MATLAB Engine会话,可以调用engOpen函数.默认情况下,这将启动MATLAB的新实例,专门用于Engine应用程序.

我想要的是使用Engine应用程序中已经运行的MATLAB会话,以便我可以访问它的变量.我需要在Linux和OS X上执行此操作.

Engine接口在Windows(它使用COM服务器)和Unix上有非常不同的实现.在Unix上,我们必须将MATLAB可执行文件的位置传递给engOpen,而在Windows上(Engine使用COM服务器)我们不会.在Windows上,可以使用MATLAB for Engine应用程序的现有实例:只运行enableservice('AutomationServer',true).在Unix系统上有任何解决方案吗?

我希望有一个通用的解决方案 – 可能没有记录 – 因为,based on the documentation,the Python interface seems to allow this.我在OS X上测试了这个并且它有效.例如,我可以启动交互式MATLAB会话,设置变量a = 5,然后启动Python,连接到同一个会话并能够检索此变量. It is also possible to connect to an already running session from Java.

我需要从C开始,而不是从Python开始,因为它将在MATLink,Mathematica-MATLink接口中使用. Python界面如何实现这一目标?如何使用C重现相同的内容?

如果有一个替代的C API而不是“MATLAB Engine”使这成为可能(可能是Python接口所基于的其他一些文档化或??未记录的C API),我可以接受这个作为答案.我想要一个可以利用已经运行的交互式MATLAB会话的C程序.

更新:

Python界面中的一些讨论显示它使用了一个名为libmwengine_api的库.这与记录的MATLAB Engine C API不同.我们可以查看这个库中的符号.在OS X上,

nm -g libmwengine_api.dylib | c++filt

然后我们可以谷歌搜索这些符号或grep MATLAB安装目录中包含它们的文件.出现了纯文本中没有任何内容.

基于此,我相信Python接口使用的是未记录的C引擎API,它与旧的C文档不同.

最佳答案 “On the Mac and Linux? platforms,you cannot make an engine program connect to an existing MATLAB session.”

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读