Matlab exp 产生意想不到的结果
Matlab exp produces unexpected result
作为一个 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)
产生了错误的结果 (test = 1.0e+04 *
0.0446 0.0545 0.1808 1.0938)
我可能忽略了一些东西,但我不知道哪里出错了。
谁能赐教一下?
它给出了正确的答案,它只是以指数格式呈现:1.0e+04 * 0.0446
与 445.8578
相同。
您可以尝试评估 test(1)
来验证这一点。
它产生了正确的结果:
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
这正是您所期望的。如您所见:这只是输出格式。
作为一个 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)
产生了错误的结果 (test = 1.0e+04 *
0.0446 0.0545 0.1808 1.0938)
我可能忽略了一些东西,但我不知道哪里出错了。 谁能赐教一下?
它给出了正确的答案,它只是以指数格式呈现:1.0e+04 * 0.0446
与 445.8578
相同。
您可以尝试评估 test(1)
来验证这一点。
它产生了正确的结果:
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
这正是您所期望的。如您所见:这只是输出格式。