我有一个矩阵(m * n)。对于每两行,我如何找到不为零的相应元素的数量。例如,对于以下行: r1 = [1,3,0,4],r2 = [5,0,0,4] ,答案是2.因为两行中的第一和第四个元素不为零。感谢
答案 0 :(得分:3)
您可以使用矩阵乘法:
L = logical(m); % convert the matrix to a logical matrix
result = L * L.'; % do matrix multiplication to compute number of corresponding elements
因此矩阵元素result(i,j)
表示行i
和行j
之间的对应元素数。
答案 1 :(得分:0)
我假设您要考虑每个块两行;也就是说,第一行有第二行,第三行有第四行等。
将m
×n
输入矩阵A
重塑为2
×m/2
×n
3D数组,然后使用{{1 }}和all
沿着适当的维度:
sum
例如,
result = sum(all(reshape(A, 2, [], size(A,2)), 1), 3);
结果是
A =
0 2 0 0 0
2 0 0 2 1
1 0 1 2 2
1 1 2 1 0
1 1 1 1 2
1 2 1 1 1