我有一个任意的向量,比如A = Any[[1,2],[3,4]]
。然后,我想创建一个新数组,根据C::Vector{Any}
中的元素说出A
,但实际上没有更改A
。我一直在尝试创建副本B = copy(A)
,并对B
中的元素进行更改,然后添加到C
,以便A
不会发生变化,但A
不断变化。现在您可能会要求我使用深层复制,但我不想要这样,因为我仍然希望C
中未更改的元素与A
中的元素相同,即A[1] == C[1]
如果我在true
中添加了A
的第一个元素而未进行任何更改,则应返回C
。例如,C
可能是Any[[1,2],[3,4,5]]
。
那么如何在不改变C
的情况下创建A
,并确保未更改元素的相等性?
答案 0 :(得分:1)
试试similar(A)
。它根据参数上数组的特征初始化一个新数组。
正如你在帖子中提到的copy(A)
一样,它对我有用。我要提一下,我使用Julia的v0.5-dev
版本。
我应该说你的问题并不完全清楚,但如果我的回答足够,那么请快乐编码。如果没有,我会尽量回答清楚。