2012-03-17 3 views
0

これは、構造が形成されている私のコードである:構造体フィールドに数値の存在をチェックする方法は?

while (count < 98) 
    % certain codes here, then 

    s(count).frame = count;   
    s(count).freq = frequency; 
    s(count).str = strength; 

    binnum = find(newdata2); 
    s(count).bin = binnum; 

    count = count + 1; 
end 

それがループ内で形成し、各反復においてその値を変更するようにアレイbinnumの内容と長さは不明です。私は1024に1から垂直s(1).binからs(97).binに番号が存在するたびに、すなわち​​今、私はこのフィールドをチェックする必要がある「binnumは」のみ1024に1

間の値を保持できることを知っている、すなわち最初の1が存在し、すべてのbinnumは、別の構造体に格納する必要がある対応するフレーム値です。たとえば1s(1).bins(70).binに存在する場合、値1 & 70を別の構造体に格納する必要があります。 からs(97).binに1回だけ、2回だけ、次に3回だけ、さらに3回単独で確認しなければならないたびに、1024となるまで、同じことを2回目と3回目、4回目、合計で1024回まで繰り返します。

私はその長さを知らないので、if状態で、私は、インデックス​​することができませんので、私はこの

xx = 1; 
for bins = 1:1024 
    for frame = 1:97 
     if (s(frame).bin == bins) 
      r(bins).start(xx) = frame; 
      xx = xx + 1; 
     end 
    end 
end 

が、この文句を言わない仕事のようなものを試してみました。

ここで何をすればよいですか?

+0

@mathewこのサー – saya

答えて

0

私はあなたの問題を理解していませんし、これを攻撃する簡単な方法があると思われます。それは、あなたが何をしているのですか?

r = []; 
for bins = 1:1024 
    r(bins).start = []; 
    for frame = 1:97 
     if any(s(frame).bin == bins) 
      r(bins).start(end+1,1) = frame; 
     end 
    end 
end