2012-03-08 103 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 structure正在創建一個新的結構變量,每次迭代while循環。將該線移出循環外,或者完全省略。

+0

非常感謝。這工作。 – saya 2012-03-09 09:52:33

相關問題