问题标签 [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 投票
3 回答
954 浏览

python - Matlab 引擎 Python - iPython 的 OSx Anaconda Segfault 或 DYLD_LIBRARY_PATH 错误

在终端中安装 matlab python 包后,使用:

并试图运行它,我得到一个段错误:

但是,我可以通过设置 DYLD_LIBRARY_PATH 来解决这个问题,之后 matlab.engine 工作:

但是,当我之后尝试启动 iPython 时,出现此错误:

如您所见,python 版本不同。我认为这是我的系统 Python 和 Anaconda 之间的冲突,但我不确定如何解决它,非常感谢任何帮助。谢谢。

0 投票
1 回答
301 浏览

python - 如何从 Python 将元组传递给 Matlab 函数

我有一个从 python 脚本调用的 Matlab 函数:

功能tstFnc如下:

然而,这不起作用,因为 Matlab 接收一个输入而不是三个。这可以工作吗?

注意:这是我想要做的简化案例。在实际问题中,我有可变数量的列表传递给 Matlab 函数,这些列表在 Matlab 函数中使用varargin.

0 投票
1 回答
152 浏览

c++ - C++ 和 Matlab 引擎之间的连接丢失

我的任务是从 C++ 项目中调用 Matlab 函数。我知道有几种方法可以做到这一点,我更喜欢通过 Matlab Engine 使用它。

  1. 我有几个 m 文件在 Matlab 环境中完美运行。

    我的

    /li>
  2. 我在 C++ 中制作了一个 dll 包装器,以将 m 文件与 C++ 连接起来。

    dllwrap.h

    dllwrap.cpp

    dllmain.cpp

    /li>
  3. 现在我专注于一个测试项目(C# 控制台应用程序)来通过 dll-wraper 调用 m 文件。

    测试.cs

    /li>

测试项目正在运行并完成工作,但是有一个问题。Matlab 引擎在意外的时间崩溃。它可能会在开始时或一段时间后崩溃。我什至试图在 engOpen(NULL) 函数之后立即停止断点,但崩溃似乎并不取决于我的中断。

我使用 Visual Studio 2013、Matlab 2015a 32 位。请帮忙指教。谢谢。

0 投票
0 回答
2453 浏览

python - 尝试在 python 中导入 matlab.engine 时出现“进程以退出代码 139 完成”错误

我想看看 Python 的 matlab 引擎。我按照这里的说明安装了它。但只是线

导致我的程序以退出代码 139 退出,我知道这是某种内存错误。我正在运行 Python 2.7.10(Anaconda 2.3.0 发行版)、Matlab 2014b、MacOS 10.10、x86_64。

编辑:这是堆栈跟踪。

编辑 2:我不确定哪种跟踪更有帮助,但我也尝试使用此处定义的 trace_calls 函数生成跟踪。这些是最后几行:

有谁知道我该如何解决这个问题?

非常感谢您提供的任何帮助。

0 投票
2 回答
7141 浏览

python - 如何有效地将 Matlab 引擎数组转换为 numpy ndarray?

我目前正在做一个项目,我需要使用遗留的 Matlab 代码(使用 Matlab 引擎)和 Python(numpy)中的其余部分进行处理。

我注意到将结果从 Matlab 转换matlab.mlarray.double为 numpynumpy.ndarray似乎非常缓慢。

下面是一些示例代码,用于创建一个包含来自另一个 ndarray、一个列表和一个 mlarray 的 1000 个元素的 ndarray:

这需要以下时间:

转换所需的时间大约是列表转换的 100 倍。

有什么方法可以加快转换速度吗?

0 投票
0 回答
171 浏览

python - 通过 matlab-engine 在 Python 中使用 eng.workspace 时非常忙碌

我已经通过 Python 中的 matlab.engine 隔离了写入 Matlab 工作区的问题。有人可以帮忙吗?

每当我调用 eng.workspace 时,我都会“超时”,即 Matlab 进入无限忙碌状态,无法继续使用 Python 或 Matlab 中的脚本,实际上它永远不会离开 eng.workspace 调用。

当我 ctrl-c out 命令仍然执行并且变量存储在 matlab 工作区中,但在执行该行之后什么都没有。

上下文代码:

如果这个 python 脚本是手动运行的(pyCharm 或 cmd\python),那么一切都会完美运行,并且这两个变量完美地位于 matlab 工作区中。但是,当从 matlab 以编程方式运行时,它会在第一个 eng.workspace 中被捕获并且不会继续。

输出(Matlab): Matlab 命令行窗口和 Ctrl-C 终止的工作区结果

任何帮助表示赞赏。

编辑:把它变成一个问题,而不是一个陈述

0 投票
1 回答
806 浏览

python - 如何在 Django 中调用“Python 的 MATLAB 引擎”?

我已经从 MathWork 安装了“Python 的 MATLAB 引擎”。我的 python 版本是 3.4,如果我将自己编写的 m.file 和 .py 文件放在同一个文件夹下,效果很好。

但是当我想在 Django 中使用该引擎时,一切都出错了。.m 函数称为“doa.m”。我的项目结构是这样的: 项目结构

我的views.py是:

我的 urls.py 是:

但是,当我进入http://127.0.0.1:8000/result/时,错误是:未定义的函数或变量'doa'。回溯是:

谁能给我解释一下?谢谢!

0 投票
1 回答
265 浏览

c++ - C++/MATLAB 引擎 API 的 Makefile

如果我理解正确,API 背后的想法是能够从 C++ 和 MATLAB 来回传递一些数据(假设 MATLAB 环境已在计算机上启动并运行)以获得两全其美的效果。

具体来说,我想要做的是在模拟代码中使用 API,这样每次我想从我的 C++ 程序中获取绘图时都不必手动打开 MATLAB。我知道还有其他选项,例如在 MATLAB 中直接使用 mex 进行编译(我无法这样做,因为当我执行编译后的文件时,它无法正确加载共享库)......

对于初学者,我一直在尝试执行 MATLAB 提供的示例(engdemo.cpp)。

我尝试更新我的 makefile 以包含库和对必要头文件的引用:

MATLABROOT = /.../matlab/ r2012b

CFLAGS = -I${MATLABROOT}/extern

LIBS = -L${MATLABROOT}/bin/glnxa64

然后 g++ $(CFLAGS) $(LIBS) -leng -lmx demo.cpp -o demo

但是我收到一堆关于 libeng 和 libmx 无法找到其他 *.so 文件的警告。

当我手动检查包含 *.so(即 .../bin/glnxa64)的文件夹时,我意识到它们不是称为 -leng 和 -lmx,而是称为 libeng 和 libmx。

1)首先我想知道为什么我必须以不同的方式称呼他们?

警告消息建议我使用-rpath-rpath-link选项,我猜这是某种递归,我不明白,因为所有 *.so 都在同一个文件夹中。我仍然尝试过,但它没有工作,因为该选项不会被识别。因此,我尝试手动请求执行另一个 *.so 并且它适用于其中一些但不是全部,我仍然不明白为什么要将它们称为 -l*** insted of -lib* **。

2)所以我的第二个问题是,我能做些什么来解决这个问题,或者有没有简单的方法来运行这个例子?

这是终端输出的屏幕截图: 终端输出,参考文献中缺少链接

0 投票
1 回答
2962 浏览

c++ - dyld:库未加载:@rpath/libeng.dylib

我正在尝试使用 MATLAB 引擎从 MAC-OSX El Capitán 上的 C++ 调用一些 MATLAB 函数。我看过类似的帖子,但没有一个以非专业人士可能理解的方式平静地解释情况。有人可以给我一个简单的解释和简单的解决方法吗?

我在运行时收到以下错误消息:

0 投票
1 回答
2212 浏览

c++ - 错误 127 g++:找不到命令

我尝试将以下几行添加到我的 makefile 中,以便将一些 MATLAB 绘图添加到我的 C++ 例程中,以设置环境变量:

并在编译时为代码提供包含文件的正确位置:

我只在其中添加了:/APP/MATLAB/R2013a/extern/include/

编译运行正常,除了我已更改的一个 .cpp 文件(这是需要新包含的文件)发送以下错误:

在此处输入图像描述

听起来我应该安装 g++ 但是如果 g++ 为所有其他文件正确运行并且它在编译原始程序时也可以正常工作,那又如何呢?

我想知道我是否在编译器调用中犯了错误,以及导出是否不正确。这在我的笔记本电脑上工作正常,但现在我试图将程序迁移到我们学校的集群,它变得很乱。

在此处输入图像描述