Julia 替换数组中的特定元素并更改其他元素
下面是示例代码。我不明白为什么数组B中的第一个元素也要修改。我可以在数组B中保留相同的元素吗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通过引用传递。您
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
创建一个新数组。