2014-03-26 1 views
0

감사합니다. 누군가가 MatLab을 도와 줄 수 있는지 궁금합니다. 이 2 개의 값인 count_zero와 count_value를 2 개의 벡터에 저장하는 방법이 있습니까? 코드와 혼동하지 마십시오. while 루프에서 위 부분은이 질문과 관련이 없습니다. 예를 들어, count_zero의 모든 값은 벡터 a = [count_zero count_zero ..]에 저장되고 count_value의 모든 값은 벡터 b = [count_value count_value ...]에 저장됩니다. 이것은 내 코드입니다. 미리 감사드립니다.MatLab, 도움이 필요하십니까? 내 스크립트의 결과를 벡터에 저장하는 방법?

   threeminutesofvideo_Youtube; 
       h=[0:0.5:179]; 
       for idx=1:length(h) 
       threshold=h(idx); 
       m =find(threshold-1<=x & x<=threshold); 
       Y(idx)=sum(y(m)); 
       end 

    count_zero=0; 
    count_value=0; 
    i=1; 

while i<length(Y) 

if (Y(i)==0) 
    count_zero=count_zero+1; 
    i=i+1; 
    while Y(i)==0 && i<length(Y) 
    count_zero=count_zero+1; 
    i=i+1; 
    end 

    if i<(length(Y)) 
    count_zero 
    count_zero=0; 
    end 

    if i==(length(Y)) && Y(length(Y))~=0 
         count_value=1; 
         count_value 
         count_value=0; 
    elseif i==(length(Y)) && Y(length(Y))==0    
         count_zero=count_zero + 1; 
         count_zero 
         count_zero=0; 
    end 


else 
    count_value=count_value+1; 
    i=i+1; 
    while Y(i)~=0 && i<length(Y) 
    count_value=count_value+1; 
    i=i+1; 
    end 
    if i<(length(Y)) 
    count_value 
    count_value=0; 
    end 

    if i==(length(Y)) && Y(length(Y))~=0 
         count_value=count_value+1; 
         count_value 
         count_value=0; 
    elseif i==(length(Y)) && Y(length(Y))==0    
         count_zero=1; 
         count_zero 
         count_zero=0; 
    end 


end 

+2

이'count_zero (I) '처럼, 그들에게 인덱스를 추가 고려 도움이되었습니다 수 있도록 노력하겠습니다. 또한, 안전한 측면에 있기 위해, while 루프 전에 미리 할당을 고려하십시오. – Divakar

+0

내가 count_zero (i)와 같이 색인을 추가하려고 할 때 실수를 표시합니다. 색인이 행렬 크기를 초과합니다. off_on_vectorsave의 오류 (행 48) count_value (i) – user3464577

답변

1

지금까지 내가 당신이 파일에 저장, 벡터의 값을 기억하지 할을하지 않는 이해로? 이 경우 는 선험적에게 당신이 값 a의 번호를 모르는 경우이

a = NaN*ones(num_of_values,1); 
i=1; 
while condition 
    ... 
    a(i) = temp_val; 
    i = i+1; 
end 

을 할 수있는 기억하려는 값의 수를 알고 있다면 우리가 당신을 기억하고자하는 벡터를 부르 자 사전 :

a=[]; 
i=1; 
while condition 
    ... 
    a = [a;temp_val]; 
    i=i+1; 
end 

나는

+0

대단히 감사합니다. 나는 이렇게하지 않았다. 그러나 그것은 매우 도움이되었다. 특히 a = []; 및 a = [a; temp_val]; 부분! – user3464577

+0

다음 답변을 평가하십시오 :) –

+0

나는 : D 아직 나는 아직 그것을 할 수 없어서 15 평판이 없다 : D – user3464577

관련 문제