matlab中如何将含非0元素个数排名最多得几行删掉?

比如如图所示矩阵

img删去2、3两行。


A = [1 6 9 0 0 0 0 0
     2 4 5 6 0 0 0 0
     1 2 3 4 0 0 0 0
     1 0 0 0 0 0 0 0
     1 6 3 0 0 0 0 0
     1 2 3 5 0 0 0 0 ];
 n0 = sum(A ~= 0,2);     %  每一行的0元素个数
 [nmax,ind] = max(n0);   %  找到0元素最多的行,下标为ind
 
 B = A([1:ind-1 ind+1:end],:);  % 去除非0元素最多的行
 n0 = sum(B ~= 0,2); 
 [nmax2,ind] = max(n0);       %  找到0元素最多的行,下标为ind
 while nmax2 == nmax          % 循环去除非零元素与第一行同样多的行
      B = B([1:ind-1 ind+1:end],:);
      n0 = sum(B ~= 0,2); 
      [nmax2,ind] = max(n0);   %  找到0元素最多的行,下标为ind
 end
 
 B  % 显示结果

结果:

B =

     1     6     9     0     0     0     0     0
     1     0     0     0     0     0     0     0
     1     6     3     0     0     0     0     0