Matlab-эквивалент для функции Python id - PullRequest
0 голосов
/ 05 октября 2018

Имеет ли Matlab какой-либо эквивалент функции id в Python ?Я попробовал какой-то Python-подобный синтаксис для создания копии таблицы Matlab и был удивлен, что он на самом деле создал таблицу с переменной, значением которой была таблица, и именем переменной которой был идентификатор переменной таблицы.

IЯ пытаюсь понять, как работает назначение в Matlab, будь то по ссылке или создает копию, и я хотел бы получить адрес объекта, если это вообще возможно.

1 Ответ

0 голосов
/ 05 октября 2018

Наиболее близким к 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...