MATLAB内存分配与使用优化全解析
1. MATLAB内存分配基础
MATLAB在处理变量时,其内存分配方式具有独特的特点。当我们将一个数值或字符数组赋值给变量时,MATLAB会分配一块连续的内存块来存储数组数据,同时会在一个名为“头”的小的独立内存块中存储数组的相关信息,如类和维度等。对于大多数数组而言,存储头信息所需的内存可以忽略不计。不过,将大型数据集存储在少量的大型数组中,相较于存储在大量的小型数组中,可能会有一定优势,因为数组数量越少,所需的数组头就越少。
以下是数组操作时内存分配的具体情况:
- 添加元素 :如果向现有数组添加新元素,MATLAB会以保持存储连续性的方式扩展数组。通常需要找到一个足够大的新内存块来容纳扩展后的数组,然后将原数组内容复制到新内存块,添加新元素,并释放原数组的内存位置。
- 删除元素 :若从现有数组中删除元素,MATLAB会通过移除删除的元素,然后在原内存位置压缩存储,以保持内存存储的连续性。
2. 数组复制与内存使用
当把一个数组赋值给第二个变量时,如 B = A ,MATLAB不会立即分配新内存,而是创建数组引用的副本。只要不修改 A 和 B 引用的内存块内容,就无需存储多个数据副本。但如果使用 A 或 B 修改内存块的任何元素,MATLAB会分配新内存,复制数据并修改副本。
在Windows系统中,可以使用 memory
超级会员免费看
订阅专栏 解锁全文
1800

被折叠的 条评论
为什么被折叠?



