2015-04-04 82 views
0

作为一个Matlab-noob,我一直在用exp函数做一点实验。 我发现那是什么把:Matlab exp会产生意想不到的结果

a = 1.1 
b = 5 
test = exp (a+b) 

产生了预期的(正确的)答案。 (测试= 445.8578)

但是:用矩阵替换a给出了完全错误的结果。所以

a = [1.1 1.3 2.5 4.3] 
b = 5 
test = exp(a+b) 

产生一个错误的结果(测试= 1.0E + 04 *

0.0446 0.0545 0.1808 1.0938)

我可能忽视的东西,但我不知道在哪里,我出错了。 任何人都可以启发我吗?

+0

谢谢你为我澄清这一点。应该看到我自己。 shortG格式对我来说是新的格式。肯定会使用它。 – Razoredge 2015-04-04 15:06:40

回答

2

它产生正确的结果:由

exp(6.1) = 445.86 
exp(6.3) = 544.6 
exp(7.5) = 1'808.0 
exp(9.3) = 10'938 

你得到相同的结果:

a = [1.1 1.3 2.5 4.3]; 
b = 5; 
c = a + b 

c = 
    6.1 6.3 7.5 9.3 

现在让我们计算每个这些值的指数函数(四舍五入位)

exp(c) 

ans = 
    1.0e+04 * 
    0.0446 0.0545 0.1808 1.0938 

这意味着您必须将每个打印元素与1.0e+04 = 10'000相乘, h是正确的结果。

这是MATLAB的标准输出格式,它允许快速查看不同值的大小。有几种不同的格式(更多详细信息,请参阅documentation)。有趣的可能是shortG

format shortG 
exp(c) 
ans = 
    445.86  544.57   1808  10938 

这正是你的预期。如你所见:这只是输出格式。

1

它给出了正确的答案,它只是以指数格式呈现:1.0e+04 * 0.0446445.8578相同。

您可以尝试评估test(1)来验证。

相关问题