问题标签 [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 回答
402 浏览

c - 如何从 GTK+2 C 代码中调用 matlab/octave 函数

如何从 GTK+2 C 代码中调用内置 matlab/octave 函数。我知道如何通过 Mex 文件从 C 代码调用 octave 函数,但我不知道如何从 GTK+2 C 代码调用 matlab/octave 函数。是否可以使用 Mex 文件从 GTK+2 C 代码中调用 matlab/octave 函数。假设我想使用 GTK+2 C 代码制作 GUI,以使用 matlab/octave 函数显示两个数字相加的结果。我在互联网上搜索过,但没有找到我要找的东西。我不确定我是否尝试从 matlab/octave 编译它,如何添加 GTK+2 所需的标志

我正在发布此代码,你能告诉我如何编译它而不会出错

当我尝试使用mkoctfile --mex addition_GUI.c错误进行编译时addition_GUI.c:1:20: fatal error: gtk/gtk.h: No such file or directory compilation terminated.

这是代码

0 投票
1 回答
1245 浏览

matlab - 使用命令行一步执行 Simulink 模型

我已经给出了一个 Simulink 模型,我可以从我的 C++ 程序中控制它。在 Matlab 引擎中,我想为所有给定的输入一次运行 Simulink。如何从我的 C++ 程序中一步一步地运行模拟?

0 投票
1 回答
439 浏览

c++ - cmake从损坏链接/库链接优先级的子目录中添加标志,库

我正在尝试编译一个应用程序pipeline并将其与我的库链接matlabengine,该库充当 Matlab 调用的包装器。Matlab 使用它自己的旧版本,libstc++它混合在 Matlab 的 lib 文件夹中.../bin/glnxa64

matlabengine编译正常,但pipeline对于未解析的符号失败(因为管道使用 Matlab 的libstdc++版本)

基本上我有两个问题,解决任何一个都应该解决这个问题:

  1. -leng -lmx -L/usr/local/MATLAB/R2013a/bin/glnxa64从链接中删除参数pipeline,该参数来自子目录mex。当我手动编译matlabengine并让 cmake 将其链接到管道时,这些标志不会出现,一切都很好。为什么在没有它们的情况下可以完美地工作时将它们添加到管道的链接中?

  2. 由于在系统范围的 libstdc++ 之前使用了 Matlab 的旧 libstc++,因此我得到了未解析的符号。修复 C++ 搜索这些库的顺序也应该解决这个问题。

任何帮助深表感谢...

CMakeList.txt

mex/CMakeList.txt (这应该模拟 matlab 的 mex 编译器包装器所做的)

0 投票
2 回答
1487 浏览

matlab - 在同一台机器上生成多个 matlab 副本

我面临一个巨大的问题。我使用 Matlab 引擎(engOpen() 等...)调用了嵌入的 Matlab 函数,构建了一个复杂的 C 应用程序。会发生以下情况:

  • 我在一台机器上生成了这个应用程序的多个实例,每个核心一个
  • 然而!...然后应用程序减速到停止。事实上,在我的 16 核机器上,应用程序的速度大约降低了 16 倍。
  • 现在我意识到这是因为每台机器只启动了一个单一的 matlab 引擎,并且我所有的 16 个实例共享同一个 matlab 副本!
  • 我试图用 matlab GUI 复制它,它也有同样的问题。我在 GUI 中运行一个程序需要 14 秒,然后我同时在两个 GUI 中运行它,需要 28 秒

这对我来说是一个大问题,因为如果我必须在没有 matlab 的情况下重新编写整个 c 应用程序,我将错过最后期限。我知道 matlab 有用于并行编程的命令,但我的 matlab 调用嵌入在 C 应用程序中,我想运行 C 应用程序的多个实例。同样,我不能重构我的整个 c 应用程序,因为我会错过最后期限。

任何人都可以让我知道是否有解决方案(例如,在同一台机器上真正启动多个 matlab 进程)。我愿意为额外的许可证付费。我目前在所有机器上都安装了完全 lincensed matlab。

非常感谢你!

编辑

感谢本·沃伊特的帮助。我发现一个 Matlab 实例已经在使用多个内核。事实上,运行一个实例显示我充分利用了 4 个内核。如果我运行两个 Matlab 副本,我可以充分利用 8 个内核。因此它实际上是并行运行的。但是,即使 2 个实例似乎占用了两倍的处理能力,我仍然会减速 2*。因此,2 个实例似乎获得了两倍的结果,总计算能力为 4*。为什么会这样?

0 投票
1 回答
331 浏览

c++ - c ++从Matlab引擎获取双数组

我有使用 MATLAB 引擎C++调用函数的代码。MATLAB

函数结果是一个包含 3 个双精度数的MATLAB数组。

如何将该数组恢复C++为双数组?

0 投票
1 回答
263 浏览

matlab - 在 Matlab 中启动给定步骤的模拟

我正在使用 simulink 模型,我必须在特定时间段内启动我的模拟。目前我正在使用

这种方法的问题是当模拟结束并且我再次启动它时,它从头开始并且所有模拟进度都将丢失。在这里我想从最后一个状态运行模拟。如何做到这一点?

0 投票
0 回答
375 浏览

c++ - 使用visual studio 2010解决matlab R2012a链接错误的方法是什么

在 32 位平台上使用 Visual Studio 2010 和 Matlab R2012a(32 位):

我只想使用 matlab 引擎在 c++ 中从 matlab 调用一个函数。我在单独的解决方案中获得了 matlab 函数输出,并且效果很好;我在主项目中进行了相同的设置,例如设置附加包含路径和附加库路径,还设置了链接器输入。我还为操作系统设置了路径环境变量。但它不起作用!我的代码是:

我看到这些错误:

我读了这个,它对我一点帮助都没有;遇到这些错误的所有其他人都错过了将库添加到链接器输入的步骤;但我设置并检查了几次;

为什么它作为一个单独的项目工作而不能在另一个解决方案中工作?我很困惑!我在我的项目中使用 openGL32。所以我想使用opengl和matlab引擎彼此不兼容;

你能建议我以前尝试过的方法吗?

太感谢了!

0 投票
1 回答
504 浏览

c++ - matlab 引擎数据检索失败

我从 matlab 引擎读取数据时遇到问题。我可以在引擎中创建一个变量
,然后保存工作区并随后将其加载到 matlab 中,这表明该变量存在并且具有正确的值。
但是,无论实际值是多少,我检索到的 C++ 值始终为零。指向我收到的变量的指针 (matM) 是一个有效的指针。如果“engGetVariable”命令失败,根据 Matlab 文档,它应该为 NULL。
然而,当变量的值应为 5 时,尝试使用 matlab 命令从该指针 (mxGetData) 检索整数数据会产生零。同样直接检查属于指针的值也会产生零。

下面是代码:

以及它创建的输出:

我找不到与 matlab 示例不同的地方http://www.mathworks.co.uk/help/matlab/apiref/mxgetdata.html,http://www.mathworks.co.uk/help /matlab/apiref/enggetvariable.html?searchHighlight=engGetVariable)导致变量读取失败。

0 投票
1 回答
508 浏览

c++ - 并行循环内的 Matlab 引擎

我在一段并行代码中使用多个 matlab 引擎时遇到了一些麻烦。我可以使用成功生成多个引擎,engOpenSingleUse但无法与多个引擎进行通信(即调用engPutVariable失败)。

与往常一样,一个最小(VS)示例:

有任何想法吗?我在 Win x64 上使用 Matlab R2012b。

0 投票
1 回答
590 浏览

macos - Mac OSX 上的 engdemo.c - 无法启动 MATLAB 引擎

我正在尝试使用Mathworks的说明构建和运行 Matlab 引擎示例“engdemo.c”。当我尝试使用 command 运行它时,!./engdemo出现以下错误:

我在其他相关的 StackOverflow 帖子中没有找到解决方案(例如matlab 引擎“无法启动 MATLAB 引擎”如何解决“无法启动 MATLAB 引擎”命令?[关闭]

我在 /bin/csh 上安装了 csh(通过键入 进行检查which csh)。

我的 PATH 变量上有 Matlab,并且我已经根据Mac OSX的Mathworks 指令设置了 DYLD_LIBRARY_PATH 变量。以下是我在 .bash_profile 中包含的用于设置这些环境变量的行:

最终,我想构建一个使用 Matlab 脚本的 C 程序(最好使用 XCode 构建),但即使让演示工作也遇到麻烦,这令人沮丧。