用 Julia 语言调用 Python 或者 Matlab 有哪些痛点?

我现在在做一个项目。项目组的其他成员有用 Matlab 的,有用 Python 的。老板说,要我确定到最后是可以调用其他人写的代码(函数,包,数据库之类的)。因为 Julia 相对来说还比较年轻,所以就想问一下,用 Julia 语言调用 python 或者 Matlab 还算顺畅和方便吗?performance 如何呢? 诸位有没有可以推荐的文献或者建议?

调用Python很容易,而且别人还能调用你的Julia代码。学习下面两个包怎么用就行了

pyjulia
PyCall.jl

MATLAB不清楚,但是MATLAB代码本身和Julia很像。

顺便提一句,Julia应该是目前除了Lua以外FFI(Foreign Function Interface)开销最小的

我之前测试的情况是,用PyCall调用Python的时间大约是直接执行Python的1~2倍(记得作者有在一个issue里提到,他觉得这个性能是可以接受的)

1 个赞

不会出现有些不能调用别人写的代码的现象吧?

Python我确定不会。MATLAB不知道。

benchmark driven developement…

涉及多个语言,建议项目整体用 hourglass interfaces:

https://www.slideshare.net/StefanusDuToit/cpp-con-2014-hourglass-interfaces-for-c-apis

底层 C++,中间一层 C89, 上层用啥语言都能无缝 interop.

1 个赞

wrapper 生成工具:

  • Julia - C: Clang.jl
  • Julia - C++: CxxWrap.jl
  • Python - C: cffi/ctypes
  • Python - C++: pybind
  • Matlab - C/C++: mex
1 个赞

补充, python-C/C++: swig, cython

1 个赞

Julia 调用 MATLAB:https://github.com/JuliaInterop/MATLAB.jl
(v1.0) pkg> add MATLAB
感觉很方便 o(∩_∩)o

1 个赞

请问下如何用julia调用matlab的.m文件和simulink程序,我用了github上的代码老师报错

Lua是真的小巧,易学好用,速度也特别快。我一般使用Python调用Lua,Lua处理数据,Python绘制图形。

不知道Julia可以调用lua不?

能导出 C 的接口就行。lua 肯定没问题啊。