2015-04-04 131 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)來驗證。

相關問題