2012-03-08 3 views
0

s (1)과 같은 구조 필드에 액세스 할 때 'fieldname'이 다시 비어 있습니다. 마지막 값만 볼 수 있습니다 (예 : s (97). 'fieldname'). 내 코드 :구조 필드가 비어있는 이유는 무엇입니까?

clc; 
clear all; 
data1= load('mydata.txt'); 
a=1;n=1;count=1;m=0; 
while (count<98)       % main loop starts 
    for i=a:a+1023 
     mydata1(i-m*1024)=data1(i);  % taking 1k points in mydata1 
    end 
    m=m+1; 
    newdata=10*log10(abs(fft(mydata1))); % taking fft in newdata from mydata 
    for j=1:512 
     newdata1(2*j-1)=newdata(j);  % interpolation of newdata to newdata1 
     newdata1(2*j)=newdata(j);   % newdata1 size is 1024 
    end 
    a=j*n+513; 
    n=2*count+1; 
%  plot(newdata1); 
%  pause(1);       % setting threshold 
    th=18; 
    newdata2(newdata1<th)=0;    % newdata2 has 1024 0s and many 1s 
    newdata2(newdata1>=th)=1; 
    num=0; 
    for k=1:1023       % loop for reducing many 1s 
     if((newdata2(k)==1)&&(newdata2(k+1)==1)) 
     num=num+1; 
     end 
     if(num>0 && (newdata2(k+1)==0 || k==1023)) 
      for p = k-num:k 
       newdata2(p)=0; 
      end 
      p= (k-num)+floor(num/2); 
      newdata2(p)=1; 
      num=0; 
     end        % loop ends 
    end 
    newdata2(1024)=0;      % newdata2 with only 1s and 0s 
    binnum = find(newdata2); 
    x=length(binnum); 
    frequency=((100000/1024)*binnum); 
    for y=1:x 
     strength(y)=(newdata1(binnum(y))); 
    end 
    s= struct;        % writing into a structure 
    s(count).frame=count; 
    s(count).freq=frequency; 
    s(count).str=strength; 
    count=count+1; 
end 

나는 어디로 가고 있습니까?

답변

0

라인 s= struct; %writing into a structurewhile 루프가 반복 될 때마다 새로운 구조의 변수를 생성한다. 이 선을 루프 밖으로 이동하거나 완전히 생략하십시오.

+0

정말 고마워요. 이것은 효과가 있었다. – saya

관련 문제