Matlab 如何找到至少有k个非零元素的列的索引?

Matlab 如何找到至少有k个非零元素的列的索引?,matlab,Matlab,我有一个矩阵a,如下所示: A = 1 2 0 0 4 0 0 0 1 3 0 0 1 1 1 我想找出A列的索引,其中每列都有超过k-nonero元素。 我用过: 但它返回至少存在一个非零元素的列的索引 与其检查一行中的所有值是否为非零,不如计算有多少值为非零,然后应用阈值: k = 3 find(sum(A~=0,2)>=k) 返回: ans =

我有一个矩阵a,如下所示:

A =

     1     2     0     0     4
     0     0     0     1     3
     0     0     1     1     1
我想找出A列的索引,其中每列都有超过k-nonero元素。 我用过:

但它返回至少存在一个非零元素的列的索引

与其检查一行中的所有值是否为非零,不如计算有多少值为非零,然后应用阈值:

k = 3
find(sum(A~=0,2)>=k)
返回:

ans =

   1
   3
与其检查一行中所有值的非零位置,不如计算其中的非零数量,然后应用阈值:

k = 3
find(sum(A~=0,2)>=k)
返回:

ans =

   1
   3

如果你一步一步地去做,可能会对你有所帮助。
首先,找出每列中非零元素的数量:

nNonZero = sum(A~=0)
然后查找大于k的列

find(nNonZero>k)

如果你一步一步地去做,可能会对你有所帮助。
首先,找出每列中非零元素的数量:

nNonZero = sum(A~=0)
然后查找大于k的列

find(nNonZero>k)