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

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

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

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

Класс 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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте