Парное сравнение внутри массива в Юлии

Предположим, у нас есть 6-элементный массив в Юлии, например, Int64[1,1,2,3,3,4], Если мы хотим сравнить два массива поэлементно, мы знаем, что можем использовать ".=="; но моя цель состоит в том, чтобы сделать все парные сравнения внутри вышеуказанного массива: если элементы (i,j) каждой пары равны, я устанавливаю его в 1 (или true), но если они отличаются, я устанавливаю в 0 Все парные сравнения хранятся в матрице 6х6. Можно ли сделать это в Юлии без цикла для? Спасибо.

1 ответ

Решение

Вы можете использовать тот факт, что трансляция будет сравнивать строки со столбцами, чтобы просто сделать сравнение между массивом и его транспонированием:

julia> A = [1,1,2,3,3,4]
6-element Array{Int64,1}:
 1
 1
 2
 3
 3
 4

julia> A .== A'
6×6 BitArray{2}:
  true   true  false  false  false  false
  true   true  false  false  false  false
 false  false   true  false  false  false
 false  false  false   true   true  false
 false  false  false   true   true  false
 false  false  false  false  false   true
Другие вопросы по тегам