loadobj
オブジェクトの読み込み過程をカスタマイズ
説明
メモ
loadobj
および saveobj
よりも matlab.mixin.CustomElementSerialization
クラスが推奨されます。これは、mixin では、プロパティの追加、削除、名前変更など、オブジェクトのシリアル化および逆シリアル化の方法をより詳細に制御できるためです。 (R2024b 以降)
は、b
= loadobj(a
)a
で表されるオブジェクトを逆シリアル化します。MAT ファイルから読み込む際にクラスのオブジェクトで特別な処理が必要になる場合は、loadobj
メソッドを定義します。saveobj
メソッドを定義する場合、loadobj
メソッドを定義してオブジェクトを目的の状態に戻します。オブジェクトのクラスで loadobj
メソッドが定義されている場合、load
はそのメソッドを自動的に呼び出します。
例
入力引数
出力引数
ヒント
loadobj
を静的メソッドとして定義します。スカラー オブジェクトまたは構造体を扱えるように
loadobj
メソッドを実装します。オブジェクト配列が逆シリアル化された後、保存された配列の各要素に対してload
がloadobj
を呼び出します。新しいバージョンのクラスがプロパティの削除や名前変更、検証の変更を行った場合、
load
が変更または削除されたプロパティの設定を試みるとエラーが発生することがあります。クラスでloadobj
メソッドが定義されている場合、MATLAB はstruct
を用いて、保存された値をloadobj
メソッドに返します。保存されたオブジェクトが、同じ名前のプライベート プロパティをもつ複数のスーパークラスから派生している場合、struct
にはすぐ上のスーパークラスのプロパティ値のみが含まれます。サブクラスのオブジェクトを読み込む場合、関数
load
はサブクラスのloadobj
メソッドのみを呼び出します。loadobj
メソッドがスーパークラスで定義されると、サブクラスはこのメソッドを継承します。ただし、継承されたメソッドは、サブクラスのオブジェクトを読み込むために必要な操作を実行しない可能性があります。アプリケーションに必要な場合は、スーパークラスのloadobj
メソッドをオーバーライドすることを検討してください。サブクラスのloadobj
からスーパークラスのloadobj
を呼び出すこともできます。
バージョン履歴
R2006a より前に導入