Парное сравнение внутри массива в Юлии
Предположим, у нас есть 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