问题标签 [matlab-engine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
485 浏览

matlab - 使用MATLAB引擎时如何获取matlab的PID?

使用MATLAB Engine接口时,如何获取启动的matlab进程的进程ID?或者我怎样才能以一种允许我也获得 PID 的方式启动 matlab 进程?

我需要这个的原因是能够在计算时间过长时中断计算。在 *nix 系统上,这似乎通过向 MATLAB 发送 SIGINT 信号来工作。这不会杀死 MATLAB,但会中断当前的计算。

0 投票
2 回答
725 浏览

windows - 在 Windows 上以编程方式中断 MATLAB

通过 GUI 使用 MATLAB 时,我可以通过按Ctrl-来中断计算C

通过MATLAB Engine C API使用 MATLAB 时,有没有办法以编程方式执行相同的操作?

在 Unix 系统上有一个解决方案:发送一个 SIGINT 信号。这不会杀死 MATLAB。它只会中断计算。我正在寻找适用于 Windows 的解决方案。


澄清(看到唯一的回答者误解了):

我正在寻找一种方法来中断任何 MATLAB 计算,而无需控制正在运行的 MATLAB 代码。我正在寻找在 Windows 系统上的 MATLAB 命令窗口中按Ctrl- in 的程序等效项。C这是针对Mathematica-MATLAB 接口的:我需要将中断从 Mathematica 转发到 MATLAB。如上所述,我已经在 Unix 上有了一个可行的实现;这个问题是关于如何在 Windows 上进行的。

0 投票
1 回答
1474 浏览

c++ - MATLAB 代码和 C/C++ 集成中的致命错误

我使用来自 mathworks 网站的示例代码通过链接将 MATLAB 代码与 C/C++ 集成!

正如您在代码中看到的,头文件如下: #include "engine.h"

在 Linux (Ubuntu) 中,我运行: g++ engdemo.cpp -o mycpp命令来创建可执行程序,但出现以下致命错误:

engdemo.cpp:14:20:致命错误:engine.h:没有这样的文件或目录,编译终止。

我该如何解决这个致命错误?

0 投票
0 回答
1188 浏览

c++ - 如何解决“无法启动 MATLAB 引擎”命令?

(1) 首先,我创建了一个 Makefile 如下:

(2) 我用'make'命令运行它并给出以下输出:

(3) 然后,我跑了:

(4) 最后,我运行了./engdemo,其输出为:

无法启动 MATLAB 引擎

如何启动 MATLAB 引擎?

0 投票
0 回答
261 浏览

matlab - 在 matlab 引擎的命令窗口上显示文本

如何在 matlab 引擎的命令窗口上显示文本?
我曾经engSetVisible使引擎命令窗口可见,但是在此窗口中看不到任何文本后,该怎么做?
我不想使用engOutputBuffer,然后处理这个缓冲区。我只想查看engEvalString引擎命令窗口的输出

0 投票
1 回答
2193 浏览

xcode - 如何将 MATLAB 与 XCode 连接

我目前正在开发一个需要 MATLAB 分类算法的 iOS 项目的一部分。我曾尝试在 XCode 上构建引擎应用程序,但在运行时它由于此错误而崩溃:

到目前为止,我按照http://www.mathworks.com/support/solutions/en/data/1-4CKF73/?solution=1-4CKF73的说明进行操作。

任何有 MATLAB-XCode 接口帮助经验的人?

太感谢了!

0 投票
1 回答
785 浏览

c++ - 使用 Matlab 引擎的多线程 C++ 应用程序

我在初始化线程中打开 Matlab 引擎,执行以下操作:

函数engOpen()打开一个到 Matlab 的 COM 通道。一旦引擎打开,线程就会进入等待事件模式。

然后,在另一个线程中,我这样做:

我得到一个CoInitialize has not been called第一次机会异常engEvalString( MatlabEngine, cPathToScript );,似乎告诉我 Matlab COM 服务器不可用(但 Matlab 引擎仍在运行)。

当我把所有东西都放在同一个线程中时,它工作得很好,但这不是我想到的那种设计。

我发现 Matlab 引擎文档缺少有关引擎+COM 的信息。知道如何在单独的线程中进行引擎初始化和函数调用吗?

谢谢 !

按照 RobH 的回答进行编辑

我将此方法添加到我的课程中(在第二个线程中实例化):

现在,当我打电话时,engEvalString( MatlabEngine, cPathToScript );我得到The application called an interface that was marshalled for a different thread了第一次机会例外 :) 今天早上我玩得很开心!:)

那么,CoMarshalInterface()?

0 投票
1 回答
1230 浏览

matlab - Matlab 引擎和 disp() 函数

我有一个脚本需要一些时间才能执行。我使用 Matlab 引擎在 C++ 函数中启动它。为了监控脚本的执行,我想在其中添加一些disp('still alive')。但是,它不起作用,由 engOpen 打开的 matlab 命令窗口中没有显示任何内容(是的,我确定脚本正在运行,因为我在执行结束时获得了输出文件)。

知道如何让它工作吗?

此外,是否可以在脚本运行时使用 engOutputBuffer 在 Windows 命令中获取此类心跳?

谢谢 !

0 投票
1 回答
1472 浏览

c++ - 将 Matlab 与 C++ 链接时出错

我正在尝试在 C++ 程序中使用 Matlab 库:

我使用包含MATLABROOT\extern\include目录的 g++ 编译我的项目并出现以下错误:

我想我在链接一些 Matlab 库时遇到了问题。

更新:我对 VS2012 和 windows 编译器有同样的问题。extern\include包含到的目录,与添加到链接器Additional include directories相同。根据@jucestain 评论,该文件添加到链接器选项中。extern\lib\win64\microsoftAdditional library dependencieslibeng.libAdditional dependencies

更新 2:我们检测到一个兼容性问题:32 位 gcc 不适用于 64 位 Matlab 引擎。因此,我将/extern32 位 Matlab 中的文件夹与我的/extern文件夹合并,将包含的链接器库更改为/extern/lib/win32/lcc,并且我的代码已成功编译。感谢@aircooled!

0 投票
3 回答
1451 浏览

c++ - 尝试使用标头从 C++ 访问 matlab

我正在尝试编译一个包含 Matlab 提供的引擎头文件的 c++ 程序。文件 MLP.cpp 包含:

并引用下面错误中突出显示的 matlab 函数。运行时:

我收到以下错误:

我还尝试将编译命令更改为: