2014-09-03 2 views
0

저는 Matlab의 경계 초보자입니다. CMSE (Compose Multiscale Entropy)의 롤링 함수를 시계열로 작성하려고합니다. 나는 slidefun을 시도했지만 출력이 스칼라이고 CMSE의 출력이 벡터 일 때만 작동합니다. 시계열에 대한 롤링 윈도우는 500으로 가정되고 각 윈도우 된 CMSE의 출력은 100 x 1 벡터입니다. XX는 시계열입니다.Matlab : 회전 함수 matlab

roll_CMSE_100=zeros(100,(length(xx)-499)); 
for i=1:(length(xx)-499) 
roll_CMSE_100(i)=CMSE(xx(i:(499+i)),100) 
end 

내가

??? In an assignment A(I) = B, the number of elements in B and 
I must be the same. 

당신의 시간과 배려에 감사드립니다 다음과 같은 출력을 얻을

+0

나는 3 행이'roll_CMSE_100 (:, i) = ...'이어야한다고 확신하지만, 좀 더 자세히 살펴보고 확인하겠다. – beaker

답변

1

matlab에 당신에게 문제를 말하고있다 : 당신이 "X"위치에있는 요소에 할당하는 벡터를 roll_CMSE는 행렬이기 때문에 숫자 여야합니다. 또는 셀 배열을 사용하거나 올바르게 할당해야합니다. CMSE 출력하면 (XX (I (499 + I)), 100)는 100x1 벡터에게 값을 할당하는 올바른 방법

roll_CMSE_100=zeros(100,(length(xx)-499)); 
for i=1:(length(xx)-499) 
    roll_CMSE_100(:,i)=CMSE(xx(i:(499+i)),100) 
end 

이 단순히 열 "I"의 행 OUPUT 할당 인 roll_CMSE 행렬.

+0

도움을 주셔서 대단히 감사합니다. – user3647872

+0

당신은 오신 것을 환영합니다. 그러나 MATLAB을 사용하기 전에 MATLAB에 대한 기본적인 소개를 제안합니다. – giuseppe