如何在矩阵中找到非零行的索引?

时间:2014-11-09 12:07:58

标签: matlab

如何在矩阵中找到非零行的索引?

示例:

A = [
       14  0  6  9  8  17
       85 14  1  3  0  99
       0   0  0  0  0   0 
       29  4  5  8  7  46
       0   0  0  0  0   0
       17  0  5  0  0  49
]

期望的结果:

   V =[1 2 4 6]

3 个答案:

答案 0 :(得分:3)

您可以使用

   ix = any(x,2);

any检查是否有任何元素不是零。第二个参数代表“每行”计算。

如果要获取数字索引,可以使用find函数:

   numIx = find(ix);

另一种方法:

  ix = sum(abs(x),2)~=0;

答案 1 :(得分:2)

使用

[i,~] = ind2sub(size(A),find(A));

v = unique(i);

上面给出的矩阵的结果:

v = unique(i')

v =

     1     2     4     6

答案 2 :(得分:1)

这是ab(使用)fast matrix multiplication in MATLAB -

的人
idx = find(abs(A)*ones(size(A,2),1))