2010-03-07 61 views
0

我正在开发一个在c#中的程序,并感谢matlab .net构建器, 我正在使用一个matlab映射工具箱函数“polybool”,它在其中一个选项中计算2 2-D中的多边形。 问题是功能大约需要0.01秒才能完成,这对我来说是不好的,因为我称它为很多。 而这根本没有意义,因为多边形是每个5个点,所以没有 的方式,它需要0.01秒来找到结果。 有没有人有任何想法?在matlab函数中意外的复杂性

+0

“tic; code; toc”是你的朋友 – 2010-03-07 18:46:40

+0

测量时间可能有点棘手,特别是当功能不需要大量时间进行评估时。我建议你使用timeit(http://www.mathworks.com/matlabcentral/fileexchange/18798)而不是tic/toc来检查。 – Jonas 2010-03-07 19:08:22

回答

1

你如何计算0.01秒?如果这是全部运行时间,那很可能是进出工具箱功能的编组,这将需要一些时间。实际的例程可能会很快运行,但是从C#中将数据导入例程,并返回结果,将会在流程中涉及一些开销。当然,这个开销很可能会很好地扩展 - 因为它很可能(大部分)是不变的,所以如果你开始处理更大的多边形,你可能会看到你的整体效率很好地扩展。

+0

正确,但大量的多边形可能不会。如果polybool在Matlab中调用时执行速度快,而在C#中调用时速度慢,我会开始寻找C#或C++实现。 – 2010-03-07 18:47:57