我有兩個陣列A和B. 讓我們說A=[1,2,3]和B=[4,5,6]。我想定義第三個陣列C = append!(A,B)。問題是這也變A了A=[1,2,3,4,5,6]。如何避免這個問題?
uj5u.com熱心網友回復:
append!將第二個集合的元素推送到第一個集合,對其進行修改,以將它們連接起來,使用vcat:
C = vcat(A, B)
或者您可以使用and;的內容構建一個新陣列:AB
C = [A ; B]
uj5u.com熱心網友回復:
你可以試試這個:
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在附加 B 之前將 A 到 C。然后在附加 B 之前,C 和 A 具有相同的資料,但它們是不同的東西。改變 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]。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414890.html
標籤:
