通过将数组 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

我有两个数组 AB。假设 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)

或者您可以使用 ;AB 的内容构建一个新数组:

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,因为它们占用相同的内存区域,它们具有相同的地址。

你要做的是copyA到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].