2011-10-04 130 views
-3

我有一些数学算法在Matlab中实现。我已经在C++中实现了这些算法(我使用了Microsoft VS 2005)。当我将matlab代码输出与C++代码输出进行比较时,它与matlab输出匹配的是98到99%。它不应该100%匹配吗? matlab计算效率比C/C++好吗?Matlab计算与'C/C++'计算..哪一个是有效的?

+0

你究竟做了什么比较? – arne

+1

通过“效率”你的意思是更快?或更正确的精度明智? –

+1

有太多可以不同的事情来提供答案。实现中的轻微差异可能会产生不同的舍入错误,编译器标志可能允许对操作进行更宽松或更严格的评估(即折衷速度/准确性)库中的算法可能会有完全不同的实现... –

回答

0

在MATLAB中也将有相应的编译器,在这种情况下很难说 是matlab computation efficiency is better than C/C++

如果你的代码是在这两种情况下,相同的话,应该是相同的输出。如果你发现它们之间存在一些差异,那么它们应该是因为它们的编译器版本不同。

4

一般来说,不,Matlab不会因为Matlab而产生更精确的结果。然而,有很多事情可能会有所作为:

  1. 相同算法的不同实现可能已经写入了不同数值稳定性的想法。
  2. C和C++编译器通常允许您设置编译标志以进行快速数学运算,从而改变浮点数学行为。
  3. 浮点数的输出选项可能只是不同,使得结果看起来不同。
  4. Matlab和C版本可能使用了不同的浮点精度。