有没有比 copy() 更好的方法在 Julia 中复制矩阵?

Is there a better way to copy a matrix in Julia than copy()?

提问人:Ron Snow 提问时间:12/22/2022 更新时间:12/22/2022 访问量:181

问:

我刚刚意识到 Julia 中的“=”运算符更像是矩阵的指针,而不是赋值。例如,如果我有一个矩阵 A,并且我设置了一个 B=A 的新矩阵 B,那么对 B 的任何修改也将应用于 A相反,我想用 A 初始化 B,但我对 B 所做的任何更改都不想应用于 A我目前的解决方案是使用 Julia 的 copy() 函数,但它似乎需要不可忽略的时间,而且使用 copy() 似乎是一个笨拙的解决方案。任何解决方案/变通方法将不胜感激。谢谢!

我有一个解决方案来解决我的问题[copy()],但我认为那里有更好的解决方案。

Julia 变量赋值 运算符 复制赋值

评论

3赞 mkrieger1 12/22/2022
我想这需要不容忽视的时间,因为它实际上复制了一些东西。我还想象(不知道)如果有更好的复制解决方案 X,X 将被命名,并且会以不同的方式命名。copycopy
0赞 sj95126 12/22/2022
如果你想让矩阵完全独立于矩阵,那么就需要。有关详细信息,请参阅此处:Julia 中的复制和深拷贝有什么区别?badeepcopy()
3赞 DNF 12/22/2022
不需要@sj95126,除非矩阵的元素本身是可变对象。对于普通值,jus5 使用 .deepcopycopy
0赞 DNF 12/22/2022
@RonSnow 很难从你的帖子中理解你认为有什么问题。在我看来,从概念上讲,这似乎是理想的解决方案,当然,它也应该是最佳效率的。是你不喜欢的名字吗?copy
0赞 sj95126 12/22/2022
@DNF:对不起,我应该说得更具体一些。我指的是链接中的示例。

答:

0赞 Tom 12/22/2022 #1

similar(A)在不复制值的情况下创建数组。

评论

0赞 Shayan 12/22/2022
因此,请以证明此答案合理的方式编辑问题。这个问题太模棱两可了!假设您只是想要一个具有相同维度的相似独立矩阵,而不考虑值!
0赞 Ron Snow 12/23/2022
感谢您推荐此功能。不幸的是,我确实想复制这些值。对于混乱,我们深表歉意。