2016-03-07 71 views
0

我寫了這個代碼MATLAB函數

var1=sqrt(0.2); 
var2=sqrt(1); 
var3=sqrt(5); 


x=-100:1:100; 
y=-100:1:100; 
z=-100:1:100; 

f1=(1/(var1*sqrt(2*pi)))*exp(-0.5*((x-0)/var1).^2); 
f2=(1/(var2*sqrt(2*pi)))*exp(-0.5*((y-0)/var2).^2); 
f3=(1/(var1*sqrt(2*pi)))*exp(-0.5*((z-0)/var3).^2); 

然而,當我繪製這些,F1和F3的結果是這樣的。我認爲最高價值不應該是平等的。你能給我一些建議嗎?謝謝。

enter image description here

+0

在第三個高斯規範化中,您正在使用'var1'而不是'var3'。除了'var'之外,我還會調用你的變量,因爲它實際上是標準偏差。 – Suever

回答

4

在公式中的一個錯字,你用

f3=(1/(var1*sqrt(2*pi)))*exp(-0.5*((z-0)/var3).^2); 

它應該是:

f3=(1/(var3*sqrt(2*pi)))*exp(-0.5*((z-0)/var3).^2); 

爲了避免這樣的問題,我建議不要複製/粘貼代碼。而是使用單個實現:

[email protected](v,x)((1/(v*sqrt(2*pi)))*exp(-0.5*((x-0)/v).^2)) 
f1=npdf(sqrt(.2),x) 
f2=npdf(sqrt(1),x) 
f3=npdf(sqrt(5),x) 
+0

謝謝。我錯過了 – newBee