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

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

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

Регенерируйте при загрузке

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

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

  • The Chart свойство Transient поэтому графические объекты не сохраняются.

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

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

  • The 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

Похожие темы

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