How can i simplify this

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

回答(2 个)

Star Strider
Star Strider 2021-8-12

0 个投票

I have no idea what you are askiing.
See if the all or any functions will work with whatever you are doing.
.
.
DGM
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.

类别

帮助中心File Exchange 中查找有关 MATLAB 的更多信息

产品

版本

R2020b

标签

编辑:

DGM
2021-8-13

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by