Сохранение данных объектов, чтобы воссоздать графические объекты

Что сохранить

Используйте переходные свойства постараться не сохранять то, что можно воссоздать при загрузке объекта. Например, объект может содержать компоненты, которые можно регенерировать из данных, которые сохранены. Регенерация этих компонентов также позволяет более новым версиям класса создать компоненты по-другому.

Регенерация при загрузке

YearlyRainfall класс иллюстрирует, как регенерировать график когда загружаемые объекты того класса. YearlyRainfall объекты содержат столбчатую диаграмму ежемесячного ливня для данного местоположения и год. Location и Year свойства являются обычными свойствами, значения которых сохранены, когда вы сохраняете объект.

Chart свойство содержит указатель на столбчатую диаграмму. Когда вы сохраняете столбчатую диаграмму, MATLAB® также сохраняет фигуру, оси, и объект Bar и данные, требуемые создать эти графические объекты. YearlyRainfall проект класса избавляет от необходимости сохранять объекты, которые это может регенерировать:

  • Chart свойством является Transient таким образом, графические объекты не сохранены.

  • ChartData частная собственность, которая обеспечивает устройство хранения данных для данных объектов Панели (YData).

  • load вызовы функции set.ChartData метод, передавая его сохраненные данные о столбчатой диаграмме.

  • setup метод регенерирует столбчатую диаграмму и присваивает указатель на Chart свойство. И конструктор класса и set.ChartData вызов метода setup.

classdef YearlyRainfall < handle
   properties
      Location
      Year
   end
   properties(Transient)
      Chart
   end
   properties(Access = private)
      ChartData
   end
   methods
      function rf = YearlyRainfall(data)
         setup(rf,data);
      end
      function set.ChartData(obj,V)
         setup(obj,V);
      end
      function V = get.ChartData(obj)
         V = obj.Chart.YData;
      end
   end
   methods(Access = private)
      function setup(rf,data)
         rf.Chart = bar(data);
      end
   end
end

Изменение на ступенчатый график

Преимущество YearlyRainfall проект класса является гибкостью, чтобы изменить тип графика, используемого, не делая ранее сохраненные объекты несовместимыми. Загрузка объекта воссоздает график, базирующийся только на данных, которые сохранены в MAT-файл.

Например, измените тип графика от столбчатой диаграммы до ступенчатого графика путем изменения setup метод:

methods(Access = private)
   function setup(rf,data)
      rf.Chart = stairs(data);
   end
end

Похожие темы