使用matlab,检查2d矩阵所有行中是否存在连续零区间

使用matlab,检查2d矩阵所有行中是否存在连续零区间,matlab,Matlab,使用Matlab,如何确定2d矩阵中所有行的所有元素都为零的具有特定长度的连续间隔?我知道我可以使用嵌套for循环来实现这一点,但我想知道是否有更有效的方法来实现这一点 提前感谢这里有一个- 样本运行- >> a a = 2 1 0 0 0 0 0 1 0 2 2 0 2 1 0 0 0 0 0 0 0

使用Matlab,如何确定2d矩阵中所有行的所有元素都为零的具有特定长度的连续间隔?我知道我可以使用嵌套for循环来实现这一点,但我想知道是否有更有效的方法来实现这一点

提前感谢

这里有一个-

样本运行-

>> a
a =
     2     1     0     0     0     0     0     1     0     2
     2     0     2     1     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     2
     2     1     2     0     0     0     0     0     2     0
>> continuous_zero_rows(a, 3)
ans =
     1
>> continuous_zero_rows(a, 4)
ans =
     0
>> a(2,4) = 0;
>> a
a =
     2     1     0     0     0     0     0     1     0     2
     2     0     2     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     2
     2     1     2     0     0     0     0     0     2     0
>> continuous_zero_rows(a, 4)
ans =
     1

查看我在文章《1D卷积》中对
~any(a,1)
的编辑,应该会更快,对吧?@bicker我不确定
~any(a,1)
在这里有什么帮助或应该做什么。我正在沿着每一行寻找
n
0的孤岛。那么,如何在那里合并
n
,这一点还不确定;我正在寻找0的完整列的频道。
>> a
a =
     2     1     0     0     0     0     0     1     0     2
     2     0     2     1     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     2
     2     1     2     0     0     0     0     0     2     0
>> continuous_zero_rows(a, 3)
ans =
     1
>> continuous_zero_rows(a, 4)
ans =
     0
>> a(2,4) = 0;
>> a
a =
     2     1     0     0     0     0     0     1     0     2
     2     0     2     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     2
     2     1     2     0     0     0     0     0     2     0
>> continuous_zero_rows(a, 4)
ans =
     1