0

作为一个 Matlab-noob,我一直在尝试使用 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)

产生了错误的结果(test = 1.0e+04 *

0.0446 0.0545 0.1808 1.0938)

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

4

2 回答 2

2

它产生正确的结果:

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

c = 
  6.1    6.3    7.5    9.3

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

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

你得到相同的结果

exp(c)

ans = 
    1.0e+04 *
     0.0446    0.0545    0.1808    1.0938

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

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

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

这正是您所期望的。如您所见:这只是输出格式。

于 2015-04-04T13:21:53.793 回答
1

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

您可以尝试评估test(1)以验证这一点。

于 2015-04-04T13:16:23.487 回答