2011-08-12 108 views
8

我们有一些在MATLAB中做很多工作的研究人员。我们经常会喜欢尝试将他们的代码作为更大的工作流的一部分,这些工作流要求将算法放入C/C++或Python中。我见过MathWorks公布了一个创建本机C或C++代码的工具。代码有多好?它支持工具箱吗?我仍然认为它是一个早期的原型工具,但是想知道代码有多好。思考?任何人都使用MATLAB工具来生成C/C++代码?生成的代码是否可行?

+1

与其他任何自动代码生成器一样 - 它不是很好,但我想它可以是一个很好的起点 –

+0

嗯,我曾在一家制造无人驾驶车辆的公司工作,而且我记得他们用它来生成飞行控制。但是,我不记得具体是否该代码在该时间点在车辆上使用,或仅在模拟器中使用。我的直觉是,对于足够复杂的算法,特别是那些正在积极开发的算法,人类犯错误的可能性要比代码生成器更可能。至于是否适合生产使用的问题,我想说的是,要问这个问题的恰当地方在于制造该工具的公司。 – shelleybutterfly

+2

有两种不同的工具,第一种可用于上一版本(R2011a),并从** MATLAB **代码生成C/C++。下面的答案确实提到了来自** Simulink **的代码生成。 – Mikhail

回答

3

我曾在这方面与mathworks广泛合作过去。工具箱很贵,但支持非常出色。我们对基于特定DSP生成的代码进行了基准测试,测试结果在手动代码速度的10%以内,并且花费了一小部分时间来生成代码。过去几年来,Mathworks一直在大量投资这些工具链,并且它们变得非常好。支持一些工具箱,请在线查看文档。

+0

感谢您的回复。我将让MATLAB程序员检查在线文档以查看是否支持图像处理和统计工具箱。我们可以很快移植到Python,但不能获得最佳性能。对于我们的一些计算机视觉工作来说是足够的,但有些需要C++的金属力量。我们目前正在手动移植代码,这是一个昂贵的过程! –

+0

另一种可能性是使用高级C++矩阵库/工具包,如[Armadillo](http://arma.sourceforge.net/),它具有许多类似Matlab的[函数](http://arma.sourceforge。净/ docs.html)。 – mtall

1

嵌入式编码器生成的代码在我看来非常好,它是一种在工业中广泛使用的产品,特别是在汽车应用中。它通常设计用于从Simulink为实时应用程序生成代码。看看网站上的用户故事:http://www.mathworks.co.uk/products/embedded-coder/?s_cid=global_nav

对工具箱的支持取决于您的要求。如果你需要一些只使用标准库的东西,那么支持是有限的,但如果这对你无关紧要,那么你可能会获得更多的成功。

虽然有一个警告:它很贵。

+0

感谢您的评论。我们目前有MATLAB软件包,图像处理器工具箱和统计工具箱。我们使用不同的计算机视觉技术进行快速原型设计和实验,然后将代码移植到C++中。手工编码在工时上是非常昂贵的过程。我在看三件事:输出C++代码的质量(是否具有类似于MATLAB本地代码的性能);它是否支持两个工具箱,以及与工时相比真正的TCO(总成本)是多少我们正在花费手动移植到C++或Python。 –