gpt4 book ai didi

python - matlab 到 python 使用 ctypes

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:39 25 4
gpt4 key购买 nike

我们想在我们的新 python 应用程序中使用用 matlab 编写的函数。我们想使用 ctypes,因为用户不需要在他的机器上使用 matlab。我们正在测试此方法,但无法使其正常工作。我们缺乏 c 知识(以及更多...)。这是我们简单的测试 matlab 函数:

function [ z ] = adding( x,y ) 
z = x + y;
end

我们用 matlab 将其编译成一个共享库 .dll。在 python 解释器中,我们有:

import ctypes
dl = ctypes.CDLL('adding.dll')

现在卡住了,因为在matlab中找不到访问函数的命令。
我们该怎么办?

最佳答案

简答 - 否

您不能将用 MATLAB 编写的代码导出为 DLL 形式的 C 并在 python 端使用 ctypes 与之交互,这样您之后就可以期望通过 unix 管道(如 mlabwrapper)进行的常规通信获得显着的性能提升。

问题在于此类 DLL 依赖于 MCR(matlab 运行时)。 DLL 以混淆的形式包含您的源代码。当您调用导出的函数时 - DLL 被加载,然后解压缩源代码,创建 MATLAB(解释器)的实例并将您的代码及其结果与 MATLAB JIT 进行通信。此功能称为“MATLAB 编译器工具箱”。或者,它可以生成操作系统可执行文件(遵循相同的逻辑)。

用 C/C++ 重写(失去对 MATLAB 的依赖)

如果您没有像 here 中那样幸运地代码生成您的项目.考虑用普通 C 重写您的代码,或使用 C++ 库作为 IT++ 或 Armadillo。

关于python - matlab 到 python 使用 ctypes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15292711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com