Раньше все графические маркеры были числами. Только после выпуска R2014b это особые объекты. Когда они представили эти объекты, они убедились, что старый код может продолжать работать. Одним из последствий этого является то, что дескрипторы графических объектов легко преобразуются в числа при назначении их в числовой массив. Таким образом,
lines = 0;
lines(1) = plot(1:5,1:5);
преобразует дескриптор графического объекта в его числовой эквивалент.
Этот номер все еще можно использовать для доступа к графическому объекту. Вам просто нужно использовать старый (до R2014b) синтаксис:
set(lines(1),'property',value)
get(lines(1),'property')
Чтобы это преобразование не произошло, инициализируйте lines
пустым массивом графических объектов:
lines = gobjects(0); % empty graphics array object
см. Документацию для gobjects
, чтобы узнать, как использовать эту функцию.
Как только преобразование в число произошло, вы можете снова получить объект графического дескриптора, используя функцию handle
:
lines = handle(lines);