Julia - массив булевых поэлементных операций - PullRequest
4 голосов
/ 28 июня 2019

Я не понимаю следующий логический результат операции (см. Стрелку в последней части):

A = [1,2,3,1,2]
B = [1,2,1,3,2]

julia> A.==1
5-element BitArray{1}:
  true
 false
 false
  true
 false

julia> B.==1
5-element BitArray{1}:
  true
 false
  true
 false
 false

julia> A.==1 .& B.==1
5-element BitArray{1}:
  true
 false
 false
  true        <----- I expect this to be false
 false

4-й элемент A. == 1. & B. == 1 должен быть ложным, потому что это (истина и ложь). Может кто-нибудь объяснить?

1 Ответ

5 голосов
/ 28 июня 2019

Проблема приоритета оператора.

У вас есть (по пропущению):

(A .== (1 .& B) .==1)

Вам нужно:

(A .== 1) .& (B .==1)

Соответствующие документы . Обратите внимание, что & (определяется как умножение) предшествует == (определяется как сравнение).

...