Наиболее близким к Python's id
, который я знаю в Matlab, является недокументированный 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