handleとenumの両方を継承する次のクラスを作成しました。Matlabの保存ハンドルのインスタンスのプロパティ値が保存されません
classdef ShiftType < handle
%SHIFTTYPE Defines shift per frame
properties
shift = 0
num_shifts = 0
end
enumeration
LateralCst %in meters
RadialCst % in radians
RadialVar % in beam distance ratio
LateralVar % Same. Lateral shift calculated at focus range.
end
end
私がShiftTypeのインスタンスを作成してスクリプト内で使用すると、すべてうまく行きます。しかし、私は、このインスタンスを.matファイルに保存して読み込むと、そのプロパティがデフォルト値(0)に設定されることに気付きました。
>> shift_type = ShiftType.RadialVar;
>> shift_type.shift = 0.5;
>> shift_type.num_shifts = 4;
>> shift_type
shift_type =
RadialVar
>> shift_type.shift
ans =
0.5000
>> save test.mat shift_type
>> clear all
>> load test.mat
>> shift_type
shift_type =
RadialVar
>> shift_type.shift
ans =
0
どのようにプロパティをShiftTypeインスタンスとともに.matファイルに保存することができますか? これらのプロパティはEnum型とは独立しているので、ShiftType(val)関数と各列挙型のデフォルト値(LateralCst(1,4)など)を持つだけではありません。
ありがとうございます!
これを修正する方法はありません。「saveob」または「loadobj」のオーバーロードはenumでは不可能です。セーブ/ロード処理を操作する方法はわかりません。私はサポートに連絡することをお勧めします、それは間違いなくバグです。 – Daniel