Python的id函数的Matlab等价

2024-04-25 19:53:25 发布

您现在位置:Python中文网/ 问答频道 /正文

Matlab是否有任何等价于Python的idfunction?我尝试了一些类似Python的语法来创建一个Matlab表的副本,但很惊讶它实际上创建了一个表,其中包含一个变量,该变量的值就是表,而变量名就是表变量标识符。你知道吗

我试图了解赋值在Matlab中是如何工作的,不管是通过引用还是创建副本,如果可能的话,我想得到对象的地址。你知道吗


Tags: 对象地址副本语法标识符赋值等价matlab
1条回答
网友
1楼 · 发布于 2024-04-25 19:53:25

我在Matlab中知道的最接近Python的id的是未记录的format debug。使用此格式选项,在命令窗口中键入变量名将显示有关其内存使用情况的信息。你知道吗

显示的pr字段是指向数据实部的指针,pi是虚部的指针。从MatlabR2018A开始,pi指针不再存在,因为有了新的interleaved complex存储。你知道吗

例如,下面说明了Matlab的copy-on-write机制。注意语句y = x如何不创建x的副本(它与y具有相同的pr),但是稍后修改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

相关问题 更多 >