Julia 中数组内的成对比较
Pairwise comparison inside array in Julia
假设我们在 Julia 中有一个 6 元素数组,例如 Int64[1,1,2,3,3,4]
。如果我们想按元素比较两个数组,我们知道我们可以使用“.==”;但我的目标是在上述数组中进行所有成对比较:如果每对的元素 (i,j) 相等,我将其设置为 1(或 true),但如果它们不同,我将其设置为 0 . 所有的成对比较都存储在一个 6x6 的矩阵中。是否可以在没有循环的情况下在 Julia 中执行此操作?谢谢你。
您可以利用广播将行与列进行比较这一事实来简单地对数组及其转置进行比较:
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
假设我们在 Julia 中有一个 6 元素数组,例如 Int64[1,1,2,3,3,4]
。如果我们想按元素比较两个数组,我们知道我们可以使用“.==”;但我的目标是在上述数组中进行所有成对比较:如果每对的元素 (i,j) 相等,我将其设置为 1(或 true),但如果它们不同,我将其设置为 0 . 所有的成对比较都存储在一个 6x6 的矩阵中。是否可以在没有循环的情况下在 Julia 中执行此操作?谢谢你。
您可以利用广播将行与列进行比较这一事实来简单地对数组及其转置进行比较:
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