如何在不改变原始向量的情况下修改用户定义类型的向量?

时间:2016-06-21 01:41:28

标签: copy julia

我有一个任意的向量,比如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,并确保未更改元素的相等性?

1 个答案:

答案 0 :(得分:1)

试试similar(A)。它根据参数上数组的特征初始化一个新数组。

正如你在帖子中提到的copy(A)一样,它对我有用。我要提一下,我使用Julia的v0.5-dev版本。

我应该说你的问题并不完全清楚,但如果我的回答足够,那么请快乐编码。如果没有,我会尽量回答清楚。