Matlab查找连续零的数量

Matlab Find number of consecutive zeros

我想求矩阵中零序列的长度

A = [0 0 0 3 1 4 6 0 9 1 0 0 0 0 0 0 1 5 2 1 1;2 3 1 0 0 4 6 0 0 0 2 3 8 6 0 0 0 0 0 1 1]

我需要结果给出 seriesZeros = [3 1 6;2 3 5] 以及一系列零值的 [rows,cols] 非常感谢...

您可以按如下方式进行:

A = [0 0 0 3 1 4 6 0 9 1 0 0 0 0 0 0 1 5 2 1 1;
    2 3 1 0 0 4 6 0 0 0 2 3 8 6 0 0 0 0 0 1 1];


[N,~] = size(A);

% pad A==0 with zeros, and calculate diff for each row
A2 = diff([zeros(N,1) A==0 zeros(N,1)],[],2);

out_mtx = [];

for row_i = 1:size(A2,1)
    row = A2(row_i, :);
    zero_lengths = find(row == -1) - find(row == 1);
    out_mtx(end+1,:) = zero_lengths;
end

out_mtx

给出

out_mtx =

     3     1     6
     2     3     5