作为一个Matlab-noob,我一直在尝试使用exp函数。 我发现的是推杆:
a = 1.1
b = 5
test = exp (a+b)
产生了期望的(正确的)答案。 (test = 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)
我可能会忽视某些事情,但我不知道自己哪里出错了。 谁能开导我?
答案 0 :(得分: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的标准输出格式,它可以快速查看不同值的大小。有几种不同的格式(有关更多详细信息,请参阅documentation)。有趣的可能是shortG
:
format shortG
exp(c)
ans =
445.86 544.57 1808 10938
这正是您的预期。如你所见:它只是输出格式。
答案 1 :(得分:1)
它给出了正确的答案,它只是以指数格式呈现:1.0e+04 * 0.0446
与445.8578
相同。
您可以尝试评估test(1)
来验证这一点。