【发布时间】:2014-11-08 19:41:38
【问题描述】:
我有一个很大的 C++ 代码,我想将它集成到 MATLAB 中,以便我可以在我的 matlab 代码中使用它。如果它是一个单一的代码,制作它的 mex 文件将是最好的选择。但是由于现在它是一个需要编译和构建才能运行的代码,我不知道如何使用该代码中的函数。
为整个代码制作 mex 文件是唯一的选择还是有其他解决方法?另外,我想了解如何为整个代码制作 mex 文件然后构建它。
为了更深入地了解,这是我试图在 matlab http://graphics.stanford.edu/projects/drf/densecrf_v_2_2.zip 中集成的代码。谢谢!
【问题讨论】:
-
Mex 函数无济于事,因为它们不允许基于类和对象的编程。我的建议是翻译成托管的 .NET 语言,如 C#。您可以通过
NET.addAssembly()直接使用代码。然后,您将拥有可在 MATLAB 内外工作的代码。请参阅此链接中的信息:mathworks.com/help/matlab/using-net-libraries-in-matlab.html -
@Juderb:将库从 C++ 移植到 C# 需要做很多工作,更不用说你会失去各种优化(上述库使用 SSE 指令等)! MATLAB 通过使用 MEX 函数轻松允许使用外部库
-
你是对的@amro。
标签: c++ matlab integration mex