2012-08-03 15 views
2

我有一个可执行的函数,我编译时需要一个输入,当我在终端中运行它时会吐出一些输出。该函数是用C++编写的,我知道它应该比matlab快得多。但是,如果我的matlab代码使用这个外部函数就像它自己一样,那么外部调用它会以任何方式变慢呢?在matlab中调用可执行函数,比原生matlab代码慢?

我试图辩论是否有任何一点在我写这个函数的matlab版本,当我可以用matlab中的system()来执行它时。

+0

为什么要你的C++函数运行速度更快?即使表面上微不足道的问题(如计算两个矩阵的总和)通常在matlab中比在幼稚的C++中快得多。为了有一个明智的答案,你应该指定你的C++程序应该做什么。如果这是一个计算密集型问题,[计算科学](http://scicomp.stackexchange.com)上有专门的堆栈交换, – 2012-08-04 20:25:09

回答

0

这取决于...您必须尝试并测试性能。

更好的方法是将代码编写为MEX-function。这为您提供了两全其美的解决方案(将MEX文件视为DLL):C代码性能,与外部进程相比,调用的开销更低。

既然你已经用C \ C++,你应该能够作为包装毫不费力MEX-功能来实现你的程序.. MATLAB相比