在Matlab中查找五个或更多连续零的运行

KHU*_*MAN 2 arrays matlab

这是我试图找到连续零的代码,大约为5或更多.

a=[0,0,0,0,0,0,0,0,9,8,5,6,0,0,0,0,0,0,3,4,6,8,0,0,9,8,4,0,0,7,8,9,5,0,0,0,0,0,8,9,0,5,8,7,0,0,0,0,0];

[x,y]=size(a);

for i=0:y
 i+1;
 k=1;
 l=0;
 n=i;
 count=0;

while (a==0)
 count+1;
 break;  
 n+1;
end
if(count>=5)
 v([]);
for l=k:l<n
 v(m)=l+1;
 m+1;
 end    
end    
count=1;
i=n;
end    
for i = o : i<m
i+1;

fprintf('index of continous zero more than 5 or equal=%d',v(i));

end
Run Code Online (Sandbox Code Playgroud)

Lui*_*ndo 6

如果要查找运行n或更多零的起始索引:

v = find(conv(double(a==0),ones(1,n),'valid')==n); %// find n zeros
v = v([true diff(v)>n]); %// remove similar indices, indicating n+1, n+2... zeros
Run Code Online (Sandbox Code Playgroud)

在你的例子中,这给出了

v =
     1    13    34    45
Run Code Online (Sandbox Code Playgroud)