jxr*_*mos 4 python memory matlab memory-management
Matlab 是否有任何等效于 Python 的id 功能?我尝试了一些类似 Python 的语法来创建一个 Matlab 表的副本,但很惊讶它实际上创建了一个带有一个变量的表,该变量的值是表,其变量名是表变量标识符。
我试图了解赋值在 Matlab 中是如何工作的,无论是通过引用还是创建副本,如果可能的话,我想获取对象的地址。
id我在 Matlab 中所知道的最接近 Python 的是未记录的format debug. 使用此格式选项,在命令窗口中键入变量名称会显示有关其内存使用情况的信息。
显示的pr字段是指向数据实部的指针,pi用于虚部。(感谢@rayryeng提供此信息。)从 Matlab R2018a 开始pi,由于新的交错复杂存储,指针不再存在。
例如,下面说明了 Matlab 的copy-on-write机制。注意语句怎么y = x不创建的副本x(它具有相同pr的y了),但修改的条目y以后触发副本(pr变化)。
>> format debug
>> x = 1:5;
>> y = x;
>> x, y
x =
Structure address = 37751590
m = 1
n = 5
pr = ff4bbe80
pi = 0
1 2 3 4 5
y =
Structure address = 37751590
m = 1
n = 5
pr = ff4bbe80
pi = 0
1 2 3 4 5
>> y(5) = 10;
>> x, y
x =
Structure address = 37751590
m = 1
n = 5
pr = ff4bbe80
pi = 0
1 2 3 4 5
y =
Structure address = 37751de0
m = 1
n = 5
pr = 85c71e0
pi = 0
1 2 3 4 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |