2012-06-05 2 views
0

누군가 내 MATLAB 코드에 문제가 있는지 확인할 수 있습니까? 내 목표는이 수식을 복제하는 것입니다 : enter image description hereMatlab의 파티션 기능 - 내 코드에 뭔가 빠져 있습니까?

q 값 1,2,3 및 5 걸릴 수 있습니다. 각 요소는 로그 (누적 합계가 각 시간 (t)) - 주식 반환의 경우 - 첫 번째 요소는 log (1)로 정규화됩니다. 위의 코드에서 뭔가 잘못

for j=1:length(dt); 
E=Xt(1:dt(j):end); 
EE=diff(E(2:end)); 
EEE=diff(E(1:end-1)); 
Sqone(j)=sum(abs(EE-EEE).^1); 
Sqtwo(j)=sum(abs(EE-EEE).^2); 
Sqthree(j)=sum(abs(EE-EEE).^3); 
Sqfive(j)=sum(abs(EE-EEE).^5); end; 

있습니까 :

다음이 내 MATLAB 코드 Q의 네 값에 대한 각 요소 스퀘어 (T, 델타 t)를 계산하기? 내가 예상 한 결과를 얻지 못하고 있기 때문에 잘못된 것이 있다는 것을 알고 있기 때문에 이것을 묻습니다. 나는 이것이 위의 코드에 기인 한 것이라고 확신한다.

벡터 dt는 Xt의 크기에 따라 1에서 높은 수로 이동하는 벡터입니다. 그러나 내 벡터 dt는 문제가 아닙니다.

도움 주셔서 감사합니다.

+0

은 T 상수입니까? 예상 결과와 잘못된 결과의 예를 들어 줄 수 있습니까? – Dan

답변

2

차이를 두 번 가져오고 있습니다. diff을 사용하고 EE-EEE을 한 번 사용합니다. 올바른 코드 :

for j=1:length(dt); 
E=Xt(1:dt(j):end); 
EE=abs(diff(E)); 
Sqone(j)=sum(EE.^1); 
Sqtwo(j)=sum(EE.^2); 
Sqthree(j)=sum(EE.^3); 
Sqfive(j)=sum(EE.^5); end; 
관련 문제