gpt4 book ai didi

arrays - MATLAB 如何处理动态数组分配?

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:12 26 4
gpt4 key购买 nike

我不太精通 MATLAB,并且很好奇它是如何在幕后处理动态内存分配的?

一个主要的方法是分配大块并且比必要的多,这样您就不必为每个添加的新元素分配。在做一些研究时,我看到很多人亲自管理他们自己的大块分配(假设他们不知道他们的最终大小)或者做一些事情,比如创建最大大小,然后修剪。一个例子是 Undocumented MATLAB建议您自己执行 block 内存分配。我原以为像 MATLAB 这样的语言会知道自己做这件事,我不需要担心这样的问题。这对我来说意味着,如果您尝试将单个新元素附加到数组,MATLAB 只会为该单个元素分配新内存,这是非常低效的。

我的问题有两个方面

  • 对于动态数组,MATLAB 是分配大块内存和比节省计算效率所需的内存更多的内存,还是只为连接的内容分配内存?
  • 如果是前者,MATLAB 选择采用这种设计是否有原因?

最佳答案

我记得几年前在 Matlab Expo 上他们谈到了 HQ 正在开发的东西 - 其中之一是内存的自动预分配

没有提及何时发布,甚至是否会发布......而且从那以后我再也没有听说过它......

根据我的经验 - 我总是自己管理动态分配 - 如果那部分代码有问题(即数组在我认为不应该的时候......),我总是注意到速度会严重下降......)

所以我认为可以公平地说,您需要自己管理它。

关于arrays - MATLAB 如何处理动态数组分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32766449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com