问题标签 [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.
c - 如何在从 Matlab 调用的 mex 函数中使用 Matlab 引擎
我想制作一个可以从 Matlab 调用的 mex 程序,用户可以在其中注册要用于处理的 Matlab 函数。然后程序将使用此函数在后台处理来自另一个程序的数据。mex 程序和外部程序之间的通信是通过一个共享的全局缓冲区进行的,我使用互斥锁来跟踪它。这部分实际上似乎有效。问题是 Matlab 是单线程的,我想在后台处理数据,以便用户可以继续使用 Matlab。由于 Matlab 是单线程的,我的解决方案是创建一个新线程并从中启动 Matlab 引擎。为此,我需要从从 Matlab 调用的 mex 文件中调用 Matlab 引擎。当我尝试这样做时,程序构建正常,但是当我尝试打开一个新引擎时,Matlab 崩溃。使用下面的测试示例,test('process2')
Matlab 停止,当我使用 ctrl-c Matlab 时崩溃。有时使用test('process')
似乎可行,但可能会在十次调用之一中使 Matlab 崩溃。
c++ - 如何在我的代码中使用 Matlab 引擎(用于调用 `engOpenSingleUse()`)?
我正在尝试向 Matlab 引擎发送简单的字符串命令。
这是我的代码(我的代码中的其他任何地方都没有与 Matlab API 相关的代码,除了该#include "engine.h"
行):
代码编译并成功运行,没有任何编译器错误或运行时错误消息。“Matlab 命令窗口”打开;我得到如下屏幕:
如您所见,命令窗口是空的。屏幕上没有绘图窗口。
当我在此窗口中手动键入命令时,我得到的绘图没有任何错误,如下所示:
这是该engOpenSingleUse()
函数的官方文档页面:http:
//www.mathworks.com/help/techdoc/apiref/engopensingleuse.html
我在我的项目中添加了<MatlabInstallationDir>\extern\lib\win64\microsoft\libeng.lib
库(我正在 x64 调试配置中编译)。
我包含<MatlabInstallationDir>\extern\include\engine.h
了头文件。
我!matlab /regserver
在 Matlab 主窗口中输入了命令(如engOpenSingleUse()
函数文档页面中所述),以确保 Matlab 引擎已注册到我的操作系统。
engOpenSingleUse()
为什么我调用该函数时没有任何反应?
为什么我在对象中发送字符串命令进行绘图时没有弹出绘图窗口PlotCommand
?
我究竟做错了什么?
操作系统:Windows 7 Ultimate x64 SP1,最新
IDE:Visual Studio 2010,(版本 10.0.40219.1 SP1Rel)
Matlab:7.8.0 (R2009a)
c++ - 为 MATLAB 引擎设置处理器关联 (Windows 7)
我正在用 C++ 开发一个应用程序。该应用程序的组件之一使用 Matlab(通过 Matlab 引擎)进行数据处理。同时,数据采集系统正在将数据流式传输到磁盘。有时,在密集的 Matlab 处理期间,采集系统会崩溃。通过将 Matlab 的处理器亲和性设置为可用处理器的子集,这个问题得到了解决。然而,由于应用程序每天启动几次,并且在多台机器上,每次手动设置亲和度并不方便。通过快捷方式的命令行设置处理器关联的技巧不起作用,因为引擎是从我的应用程序中启动的,而不是通过快捷方式启动的。我一直在寻找一种以编程方式设置亲和力的方法,但收效甚微。
我考虑了以下选项(按优先顺序排列):
- 当引擎启动时,从应用程序中指定 matlab 引擎的处理器亲和性。
- 为 matlab 引擎指定一个默认的处理器关联,与完整的 Matlab 应用程序本身分开。
- 作为最后的手段,为 Matlab 设置默认亲和力(引擎和非引擎使用)。这是最不可取的,因为 Matlab 在部署机器上用于其他目的,最好不要将其限制为其他用途。
是否可以从我的应用程序中设置处理器亲和性,如果可以,如何设置?如果没有,解决这个问题的正确方法是什么?欢迎对这些选项或其他建议/解决方案提出任何建议。
ruby - 从线程调用时,matlab-ruby gem 不起作用
我想在 ruby 线程中运行 Matlab 引擎(使用 gem matlab-ruby)。这个想法是使用 ruby 将我的 Matlab 进程分布到不同的内核上。但是,当我尝试从线程内部启动新引擎时,会出现 Trace/BPT 陷阱:5 错误。
我是红宝石的新手,所以在线程等方面没有那么强。我正在尝试做的事情是可能的,还是只是那些无法完成的事情之一?
需要'matlab'
c++ - 使用 engine.h 时,让 Matlab 在命令行窗口中显示错误和输出
我正在使用 matlab 引擎从 c++ 程序中调用一些函数,效果很好。数据被传递,函数被调用,结果以数字形式显示。
但是,如果在调用的 matlab 函数中有一行导致它出错,则不会出现任何内容,因此人们不知道是否存在问题(例如,路径不正确)。
此外,如果通过 c++ 调用,对被调用函数中包含的诸如 disp 和 fprintf 之类的调用不会显示在 Matlab 命令窗口中……但是,如果直接从它们相同的 Matlab 命令窗口调用完全相同的函数。最后,对 save('fileName',var) 的调用不会导致变量被保存,如果直接调用该函数,它也会如此。
当从我的 c++ 程序调用各种 matlab 函数时,我需要设置什么才能使此输出显示在命令窗口中?
c++ - 将数据从 OpenCV 矩阵发送到 Matlab 引擎,C++
我正在使用 C++ 和 Matlab 引擎将数据从 OpenCV 矩阵发送到 matlab。我试图从列专业转换为行专业,但我真的很困惑如何做到这一点。我无法理解如何处理 Matlab 指针 mxArray 并将数据放入引擎。
有没有人使用 OpenCV 和 matlab 一起发送矩阵?我没有找到太多信息,我认为这是一个非常有趣的工具。欢迎任何帮助。
c++ - 轻松将 OpenCV C++ 变量发送到 Matlab 的分步指南
我希望能够将任何OpenCV变量发送到Matlab,以便以舒适的方式绘制图形和计算统计数据。
我知道我必须使用 Matlab 引擎,但是关于如何从代码的任何部分访问它,或者关于从 CV::Mat 转换为 Matlab 数组的函数,或者如何处理列,网络上几乎没有帮助-major 和 row-major 在这种特定情况下。
我认为一步一步的过程 OpenCV-to-Matlab会非常有趣,因为 OpenCV 变得非常流行并且 Matlab 对调试有很大帮助。
c - Matlab R2007b 未解决的外部与引擎实用程序
我正在尝试运行大多数 matlab 副本(我的是 Matlab R2007b)提供的 matlabdemo.c,尽管我尽了最大努力,但当我尝试通过 Visual Studio 命令提示符编译程序时,我仍然遇到“未解决的外部”错误。
我编译时使用: "cl -I"C:\Program Files\MATLAB\R2007b\extern\include" matlabdemo.c -link -dll -LIBPATH:"../lib/win64/microsoft/"labeng.lib"
提前致谢!
c++ - matlab找不到locale数据库是什么意思?
我有一个在 linux 上使用 matlab 接口的 C++ 程序。当我运行 C++ 程序时,我收到与语言环境数据库相关的错误:
这是什么意思?这个错误会导致严重的数值问题,还是只是一个小警告?
matlab - Fortran 未定义的引用
我正在尝试编译实验室伙伴给我的 fortran 代码以运行一些分析。该程序涉及调用 MATLAB 脚本来计算某些事情。他给我的文件被设置为在另一台计算机上运行,我正试图让它们在我的计算机上运行。我已将 ACML 和 MATLAB 库路径更改为我计算机上的相应路径。
我得到的错误是:
我正在使用的makefile是:
我已经用谷歌搜索了这个废话并且没有任何运气来修复它。如果有人有任何想法让我尝试,我将不胜感激。
谢谢,扎克