通过将数组 B 附加到数组 A 而不更改数组 A 的值来在 Julia 中定义数组(C)
Defining an array(C) in Julia by appending array B to array A without changing the values of the array A
我有两个数组 A
和 B
。假设 A=[1,2,3]
和 B=[4,5,6]
。我想定义第三个数组 C = append!(A,B)
。问题是这也将 A
更改为 A=[1,2,3,4,5,6]
。如何避免这个问题?
append!
将第二个集合的元素推送到第一个集合,修改它,只是连接它们,使用 vcat
:
C = vcat(A, B)
或者您可以使用 ;
从 A
和 B
的内容构建一个新数组:
C = [A ; B]
你可以试试这个:
A=[1,2,3]
B=[4,5,6]
C=A
append!(C,B)
那么 C = [1,2,3,4,5,6] 和 B = [4,5,6]。但不幸的是,A = [1,2,3,4,5,6].
问题是C=A
,这使得A和C除了变量名之外在所有方面都是一样的。不幸的是,对C的改变也会改变A,因为它们占用相同的内存区域,它们具有相同的地址。
你要做的是copy
A到C,然后追加B。然后C和A有相同的数据,在追加B之前,但它们是不同的东西。改变 C 不再改变 A.
A = [1,2,3]
B = [4,5,6]
C=copy(A)
append!(C,B)
那么 C = [1,2,3,4,5,6] 和 B = [4,5,6]。并且,A = [1,2,3].
我有两个数组 A
和 B
。假设 A=[1,2,3]
和 B=[4,5,6]
。我想定义第三个数组 C = append!(A,B)
。问题是这也将 A
更改为 A=[1,2,3,4,5,6]
。如何避免这个问题?
append!
将第二个集合的元素推送到第一个集合,修改它,只是连接它们,使用 vcat
:
C = vcat(A, B)
或者您可以使用 ;
从 A
和 B
的内容构建一个新数组:
C = [A ; B]
你可以试试这个:
A=[1,2,3]
B=[4,5,6]
C=A
append!(C,B)
那么 C = [1,2,3,4,5,6] 和 B = [4,5,6]。但不幸的是,A = [1,2,3,4,5,6].
问题是C=A
,这使得A和C除了变量名之外在所有方面都是一样的。不幸的是,对C的改变也会改变A,因为它们占用相同的内存区域,它们具有相同的地址。
你要做的是copy
A到C,然后追加B。然后C和A有相同的数据,在追加B之前,但它们是不同的东西。改变 C 不再改变 A.
A = [1,2,3]
B = [4,5,6]
C=copy(A)
append!(C,B)
那么 C = [1,2,3,4,5,6] 和 B = [4,5,6]。并且,A = [1,2,3].