1 | function out = loadobj(obj) |
---|
2 | %loadOBJ load filter for LMI objects. |
---|
3 | |
---|
4 | % Restore persistent variables in SDPVAR class |
---|
5 | if ~isempty(obj.savedata) |
---|
6 | try |
---|
7 | % Some backwards compatability |
---|
8 | if isfield(obj.savedata,'optsolution') |
---|
9 | obj.savedata.internalsdpvarstate.optSolution = obj.savedata.optsolution; |
---|
10 | end |
---|
11 | if isfield(obj.savedata.internalsdpvarstate,'optSolution') |
---|
12 | if ~isfield(obj.savedata.internalsdpvarstate.optSolution,'values') |
---|
13 | obj.savedata.internalsdpvarstate.optSolution.values = []; |
---|
14 | end |
---|
15 | end |
---|
16 | if ~isfield(obj.savedata.internalsdpvarstate,'evalVariables') |
---|
17 | obj.savedata.internalsdpvarstate.evalVariables = []; |
---|
18 | end |
---|
19 | if ~isfield(obj.savedata.internalsdpvarstate,'logicVariables') |
---|
20 | obj.savedata.internalsdpvarstate.logicVariables = []; |
---|
21 | end |
---|
22 | if ~isfield(obj.savedata.internalsdpvarstate,'complexpair') |
---|
23 | obj.savedata.internalsdpvarstate.complexpair = []; |
---|
24 | end |
---|
25 | |
---|
26 | yalmip('setinternalsdpvarstate',obj.savedata.internalsdpvarstate); |
---|
27 | yalmip('setinternalsetstate',obj.savedata.internalsetstate); |
---|
28 | catch |
---|
29 | error('Data probably saved in old YALMIP version. Cannot load this...'); |
---|
30 | end |
---|
31 | end |
---|
32 | if ~isa(obj,'lmi'), |
---|
33 | if ~isfield(obj,'LMIid') |
---|
34 | LMIid = []; |
---|
35 | obj = rmfield(obj,'savedata'); |
---|
36 | for i = 1:length(obj.clauses) |
---|
37 | LMIid = [LMIid obj.clauses{i}{1}.LMIid]; |
---|
38 | X.data=obj.clauses{i}{1}.data; |
---|
39 | X.type = obj.clauses{i}{1}.type; |
---|
40 | X.symbolic = obj.clauses{i}{1}.symbolic; |
---|
41 | X.handle = obj.clauses{i}{1}.handle; |
---|
42 | X.strict = obj.clauses{i}{1}.strict; |
---|
43 | X.cut = obj.clauses{i}{1}.cut; |
---|
44 | obj.clauses{i} = X; |
---|
45 | end |
---|
46 | obj.LMIid = LMIid; |
---|
47 | end |
---|
48 | obj.savedata = []; |
---|
49 | out = class(obj,'lmi'); |
---|
50 | else |
---|
51 | out = obj; |
---|
52 | end |
---|
53 | out.savedata = []; |
---|