如何在矩阵中找到非零行的索引?
示例:
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]
答案 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))