问题标签 [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.
python - Matlab 引擎 Python - iPython 的 OSx Anaconda Segfault 或 DYLD_LIBRARY_PATH 错误
在终端中安装 matlab python 包后,使用:
并试图运行它,我得到一个段错误:
但是,我可以通过设置 DYLD_LIBRARY_PATH 来解决这个问题,之后 matlab.engine 工作:
但是,当我之后尝试启动 iPython 时,出现此错误:
如您所见,python 版本不同。我认为这是我的系统 Python 和 Anaconda 之间的冲突,但我不确定如何解决它,非常感谢任何帮助。谢谢。
python - 如何从 Python 将元组传递给 Matlab 函数
我有一个从 python 脚本调用的 Matlab 函数:
功能tstFnc
如下:
然而,这不起作用,因为 Matlab 接收一个输入而不是三个。这可以工作吗?
注意:这是我想要做的简化案例。在实际问题中,我有可变数量的列表传递给 Matlab 函数,这些列表在 Matlab 函数中使用varargin
.
c++ - C++ 和 Matlab 引擎之间的连接丢失
我的任务是从 C++ 项目中调用 Matlab 函数。我知道有几种方法可以做到这一点,我更喜欢通过 Matlab Engine 使用它。
我有几个 m 文件在 Matlab 环境中完美运行。
我的
/li>我在 C++ 中制作了一个 dll 包装器,以将 m 文件与 C++ 连接起来。
dllwrap.h
dllwrap.cpp
dllmain.cpp
/li>现在我专注于一个测试项目(C# 控制台应用程序)来通过 dll-wraper 调用 m 文件。
测试.cs
/li>
测试项目正在运行并完成工作,但是有一个问题。Matlab 引擎在意外的时间崩溃。它可能会在开始时或一段时间后崩溃。我什至试图在 engOpen(NULL) 函数之后立即停止断点,但崩溃似乎并不取决于我的中断。
我使用 Visual Studio 2013、Matlab 2015a 32 位。请帮忙指教。谢谢。
python - 如何有效地将 Matlab 引擎数组转换为 numpy ndarray?
我目前正在做一个项目,我需要使用遗留的 Matlab 代码(使用 Matlab 引擎)和 Python(numpy)中的其余部分进行处理。
我注意到将结果从 Matlab 转换matlab.mlarray.double
为 numpynumpy.ndarray
似乎非常缓慢。
下面是一些示例代码,用于创建一个包含来自另一个 ndarray、一个列表和一个 mlarray 的 1000 个元素的 ndarray:
这需要以下时间:
转换所需的时间大约是列表转换的 100 倍。
有什么方法可以加快转换速度吗?
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 终止的工作区结果
任何帮助表示赞赏。
编辑:把它变成一个问题,而不是一个陈述
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'。回溯是:
谁能给我解释一下?谢谢!
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)所以我的第二个问题是,我能做些什么来解决这个问题,或者有没有简单的方法来运行这个例子?
c++ - dyld:库未加载:@rpath/libeng.dylib
我正在尝试使用 MATLAB 引擎从 MAC-OSX El Capitán 上的 C++ 调用一些 MATLAB 函数。我看过类似的帖子,但没有一个以非专业人士可能理解的方式平静地解释情况。有人可以给我一个简单的解释和简单的解决方法吗?
我在运行时收到以下错误消息:
c++ - 错误 127 g++:找不到命令
我尝试将以下几行添加到我的 makefile 中,以便将一些 MATLAB 绘图添加到我的 C++ 例程中,以设置环境变量:
并在编译时为代码提供包含文件的正确位置:
我只在其中添加了:/APP/MATLAB/R2013a/extern/include/。
编译运行正常,除了我已更改的一个 .cpp 文件(这是需要新包含的文件)发送以下错误:
听起来我应该安装 g++ 但是如果 g++ 为所有其他文件正确运行并且它在编译原始程序时也可以正常工作,那又如何呢?
我想知道我是否在编译器调用中犯了错误,以及导出是否不正确。这在我的笔记本电脑上工作正常,但现在我试图将程序迁移到我们学校的集群,它变得很乱。