【发布时间】:2016-05-18 07:51:56
【问题描述】:
我创建了以下类,它继承自句柄和枚举。
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,而且我不知道有任何替代方法来操纵保存/加载过程。我建议联系支持,这绝对是一个错误。
标签: matlab