我有一个公式:
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。
我在这里想念一下吗?
感谢。
答案 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
(^
)高于括号内的所有内容。因此,它将在否定之前执行^
操作 ,除非你加上括号。