Обновление: Проверьте принятое решение. Проблема не имела отношения к свойствам класса.Matlab clear class property
У меня есть следующая проблема в Matlab и ничего не найдено на google или здесь. У меня есть класс ручки, как это:
classdef myClass < handle
properties
hugeCellArray
otherVariables
end
...
end
Я как создание экземпляр myObj = myClass(data);
Теперь, если я стараюсь: clear myObj.hugeCellArray
это не проясняет свойство вообще. Если я попробую myObj.hugecellArray = [];
, он установит свойство как [], но память по-прежнему выделена! Так кажется, что я не могу избавиться от огромной переменной в классе, если я не очистил весь класс? Спасибо заранее!
Редактировать: (Уточнение) Моя проблема в памяти. Я не хочу фактически удалить свойство класса, я хочу освободить его память.
Что вы подразумеваете под «памятью по-прежнему выделяется»? – Shai
Matlab все еще использует ~ 10 ГБ. Это означает, что он не освободил память (?). Это означает, что если я вызову другую функцию, которая нуждается в памяти, у меня закончится нехватка памяти и начнется запись для обмена. – Stefan
вы уверены, что у вас нет закрытия или что-то такое, что есть еще ссылки на собственность где-то? установка его на пустой массив должна вернуть память. Другое объяснение состоит в том, что ваша память стала слишком фрагментированной. – Amro