相同的公式但Matlab和Excel的结果不同

时间:2014-03-07 20:13:22

标签: excel matlab

我有一个公式:

800/(0.3*F6)*((20/SQRT(3.14*E6*A6^3))*EXP(-(40-F6*A6)^2/4*F6*A6))
A6 = 1
E6 = 1
F6 = 1

Excel中的答案是4.1592E + 169,但Matlab报告的答案是2.1780e-161。

我在这里想念一下吗?

感谢。

2 个答案:

答案 0 :(得分:5)

这是由于Excel中的运算符优先级,其中-2^2 = (-2)^2 = 4,而MATLAB中为-2^2 = -(2^2) = -4

因此Excel中的-(40-F6*A6)^2(-(40-F6*A6))^2,在MATLAB中为-((40-F6*A6)^2)

答案 1 :(得分:1)

MATLAB中的操作顺序不同。 MATLAB评估好像在Excel公式中有额外的括号:

Excel:EXP(-(40-F6*A6)^2/4*F6*A6))

Excel匹配MATLAB:EXP(-((40-F6*A6)^2/4*F6*A6)))

匹配Excel的MATLAB:exp((-(40-F6*A6))^2/4*F6*A6)

也就是说,MATLAB's operator precendence mpower^)高于括号内的所有内容。因此,它将在否定之前执行^操作 ,除非你加上括号。