Проблема сложно описать (отсюда плохой заголовок), легче показать:
matr =
[
1 1 3
2 1 10
3 2 3
13 8 10]
i=1
print(matr[:,2].==i .* matr[:,3].!=i)
x = matr[:,2].==i
y = matr[:,3].!=i
print(x .* y)
Первый и второй print () должны быть эквивалентными. В любом случае, первый печатает Bool[false, false, false, false]
, второй печатает Bool[true, true, false, false]
.
Поскольку первый результат неверен, мне интересно, как возникает эта проблема и как ее можно предотвратить.