Julia 替换数组中的特定元素并更改其他元素

Julia 替换数组中的特定元素并更改其他元素,julia,Julia,下面是示例代码。我不明白为什么数组B中的第一个元素也要修改。我可以在数组B中保留相同的元素吗 julia> A = [0.0 0.1 0.2 0.3]; julia> B = A; julia> A[1] = 0.1; julia> A 1×4 Array{Float64,2}: 0.1 0.1 0.2 0.3 julia> B 1×4 Array{Float64,2}: 0.1 0.1 0.2 0.3 JuliaArray通过引用传递。您

下面是示例代码。我不明白为什么数组B中的第一个元素也要修改。我可以在数组B中保留相同的元素吗

julia> A = [0.0 0.1 0.2 0.3];

julia> B = A;

julia> A[1] = 0.1;

julia> A
1×4 Array{Float64,2}:
 0.1  0.1  0.2  0.3

julia> B
1×4 Array{Float64,2}:
 0.1  0.1  0.2  0.3

Julia
Array
通过引用传递。您需要创建一个副本:

julia> A = [0.0 0.1 0.2 0.3];

julia> B = deepcopy(A)
1×4 Array{Float64,2}:
 0.0  0.1  0.2  0.3

julia> A[1] = 0.1;

julia> A, B
([0.1 0.1 0.2 0.3], [0.0 0.1 0.2 0.3])

请注意,对于此代码,只需
copy
就足够了,但如果您有一个对象数组,您可以使用
deepcopy

另一个可能的副本,可能更好:
B=a
是一个变量赋值,两个变量将绑定到同一个数组。您可以使用
copy
为变量
B
创建一个新数组。