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

时间:2018-09-27 15:24:13

标签: matlab

我的矩阵A如下:

A =

     1     2     0     0     4
     0     0     0     1     3
     0     0     1     1     1

我想找到A列的索引,其中每列具有不止k个nonero元素。 我用过:

find(all(A~=0));

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

2 个答案:

答案 0 :(得分:2)

如果逐步进行,可能会有所帮助。
首先,找到每列中非零元素的数量:

nNonZero = sum(A~=0)

然后找到大于k的列

find(nNonZero>k)

答案 1 :(得分:1)

与其检查行中所有 all 的值都不为零,而是计算有多少个值,然后应用阈值:

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

返回:

ans =

   1
   3