How can i simplify this
    2 ビュー (過去 30 日間)
  
       古いコメントを表示
    
If (a(i)>0)&&(a(i-1)==0)&&(a(i-2)==0)&&(a(i-3)==0)&&(a(i-4)==0)&&(a(i-5)==0)&&(a(i-6)==0)...until a(i-32)==0
0 件のコメント
回答 (2 件)
  DGM
      
      
 2021 年 8 月 13 日
        
      編集済み: DGM
      
      
 2021 年 8 月 13 日
  
      Like Star Strider mentioned, you can use all() or any()
a(i)>0 && ~any(a(i-32:i-1))
but there are a couple things to mention.  
First is whether a is an integer class.  If it's not, then testing for equality with zero is likely going to cause problems.  Test to within some tolerance.
a(i)>0 && all(abs(a(i-32:i-1)-0)<tolerance)
Second is whether you're making sure a(i-32), etc exist.  You may need to pad the vector or restrict the indexing accordingly.
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


