このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。
オブジェクト データを保存してグラフィックス オブジェクトを再作成
保存対象
過渡的プロパティを使用して、オブジェクトの読み込み時に再作成できるものは保存しないようにします。たとえば、オブジェクトには保存されたデータから再生成できるコンポーネントが含まれていることがあります。また、これらのコンポーネントを再生成することにより、新しいバージョンのクラスでコンポーネントを異なる方法で作成できるようになります。
読み込み時の再生成
YearlyRainfall
クラスによって、そのクラスのオブジェクトを読み込むときにグラフがどのように再生成されるかが示されます。YearlyRainfall
オブジェクトには、特定の場所と年の、月ごとの降水量を表す棒グラフが含まれています。Location
および Year
プロパティは通常のプロパティであり、オブジェクトを保存するときに値が保存されます。
Chart
プロパティには棒グラフのハンドルが含まれています。棒グラフを保存すると、MATLAB® によって figure、axes、bar の各オブジェクトと、これらのグラフィックス オブジェクトの作成に必要なデータも保存されます。YearlyRainfall
クラスの設計では、再生成可能なオブジェクトの保存は不要となっています。
Chart
プロパティはTransient
であるため、グラフィックス オブジェクトは保存されません。ChartData
は bar オブジェクト データ (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