【发布时间】:2015-01-09 23:59:39
【问题描述】:
Mathematica 有一个名为Compile 的功能,通过在 Mathematica 语言中编译您编写的代码,您将其转换为 c 代码并在 Mathematica 中运行生成的代码,它不会给您 c 代码,但它会将代码转换为它并使用它。编译后的代码比未编译的版本快很多。
Matlab 中是否有类似的功能,以便有人可以轻松地更快地编写 Matlab 中的代码而无需额外的努力?
Matlab 编译器似乎没有实现这个目标,因为它确实不打算用于这个目的。 我不知道 Matlab 编码器。我刚刚阅读了一些有关 MEX 文件的内容,但对我来说,似乎我必须用 c 编写代码,然后将其带入 Matlab 以提高速度。
有人可以指导我并举一个简单的例子吗?
【问题讨论】:
-
为什么不说原因就投反对票?
-
您希望加快哪种代码?如果它涉及矩阵数学,除非您真的知道自己在做什么,否则您不太可能看到将其转换为 mex 的任何速度。
-
它涉及到四万个矩阵的乘法作为代码的一部分。除了加快我的代码速度之外,我想知道 Matlab 中是否有相当于 Mathematica 的
Compile功能。 -
你可以预先解析你的函数,这会显着减少它们的加载时间,但为了更快的速度,你需要用 C++ 重写或改变方法。
-
参见
coder和codegen(如果有的话)。 This video 可能会有所帮助。
标签: performance matlab mex