如何计算特定行中的值1的数量

时间:2012-08-23 07:19:22

标签: matlab matrix

我有矩阵:

 A=[ 1 2 3 4 5 0 0 0 0 0 0;
     0 1 2 3 4 5 0 0 0 0 0;
     0 0 0 1 2 3 4 5 0 0 0;
     0 0 1 2 3 4 5 0 0 0 0;
     0 0 0 0 0 1 2 3 4 5 0;
     1 2 3 4 5 0 0 0 0 0 0]

我想从行14搜索矩阵中的6数字。我只想知道在它之前的同一索引处的列元素小于3时的数字。

例如:

在第4行,数字1位于第3位,但在前一行中相同位置的行3中存在值1。因此,这应该被忽略,然后继续寻找下一个。

在第6行,条件失败,应该返回。

1 个答案:

答案 0 :(得分:2)

怎么样

C = sum( A(4:6,all(A(1:6,:)<3,1)) == 1, 2)

部分B = A(4:6,all(A(1:6,:)<3,1))提取第4行到第6行,并对所有列应用<3限制,从第1行到第6行。然后,等同B == 1并对行进行求和将导致

C = [0
     0
     1];