2017-05-29 646 views
0

我需要在MATLAB中繪製一個圖中的12個置信區間,每個圖都帶有內部標記。任何想法我怎麼能做到這一點?您可以在下面的圖片找到一個例子: example plot使用MATLAB繪製置信區間 - 一個圖中的線

我使用下面的代碼用於計算置信區間:

S=10; E=9; sigma=0.1; r=0.06; T=1; 
Dt=1e-3; N=T/Dt; M=2^17; 

V = zeros(M,1); 
for i=1:M 
    Sfinal = S*exp((r-0.5*sigma^2)*T+sigma*sqrt(T)*randn); 
    V(i)=exp(-r*T)*max(Sfinal-E,0); 
end 
aM=mean(V); bM=std(V); 
conf=[aM-1.96*bM/sqrt(M),aM+1.96*bM/sqrt(M)] 
+3

你調查過['errorbar'(https://www.mathworks.com/help/matlab/ref/errorbar.html)功能? – kedarps

+0

還沒有,但會看看!謝謝 – Natalia

回答

0

第一,而不是你的循環,你可以這樣寫:

V = exp(-r*T)*max(S*exp((r-0.5*sigma^2)*T+sigma*sqrt(T)*randn(M,1))-E,0); 

randn(M,1)立即創建所有M隨機值,並且由於所有其他值都是標量,因此可以通過簡單地將其放入的公式中對其進行矢量化(這樣,也不需要用零初始化V)。

而對於繪製錯誤條使用errorbar

errorbar(aM,conf(1),conf(2))