0 julia
我有一个带有升序数字的向量,例如(2,3,6,10)。现在我需要生成第二个向量,其中被调用项中的所有条目均为 1,其他所有条目均为 0,因此 (0,1,1,0,0,1,0,0,0,1)。
我的尝试是:
A = [2, 3, 6, 10]
B = 零(整数,最大值(A))
B[A] .= 1
问题是这会导致一个由 1 组成的四维向量,而不是由 1 和 0 组成的 10 维向量。我唯一的另一个想法是我想避免的 for 循环
我想你已经解决了这个问题。广播操作执行您想要的操作,但返回其他内容。
julia> A = [2, 3, 6];
julia> B = zeros(Int, maximum(A));
julia> B[A] .= 1
3-element view(::Vector{Int64}, [2, 3, 6]) with eltype Int64:
1
1
1
julia> B
6-element Vector{Int64}:
0
1
1
0
0
1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |