如何计算符合组合条件的行?

how to count the row which match a combined condition?

例如,我有矩阵 m =

1 0 1 0 1 1;
0 1 0 1 0 1;
1 0 1 0 1 1;
0 1 0 1 0 1

我想计算第一个元素 m(i, 1) = 1 和第三个元素 m(i,3) = 1 的行数。

使用 for 循环就可以了。但是,我希望有一种简单的方法可以做到这一点。 octave function sum SEEMS只支持一个条件

在八度中找到符合特定条件的行非常容易:

m(:,1) == 1 # m(i, 1) = 1
m(:,3) == 1 # m(i, 3) = 1

您可以使用八度 &(逻辑与)和 |(逻辑或)运算符组合多个条件:

(m(:,1) == 1) & (m(:,3) == 1)

如果你只想要一些匹配的 roes,你可以使用 sum 函数:

sum((m(:,1) == 1) & (m(:,3) == 1))