-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathStartDataset.m
More file actions
36 lines (34 loc) · 1.36 KB
/
StartDataset.m
File metadata and controls
36 lines (34 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
classdef StartDataset < Dataset
% Dataset's subclass, whose constructurr is tuned to extract starting geometry
% from Optimizer specifically. It usually resides in Dataset's start
% property.
methods
function obj = StartDataset(data)
if nargin == 0 || builtin('isempty', data)
data = struct;
end
% if it's an Optimizer object, it means we want to record
% the start pattern only
if isa(data, 'Optimizer')
fields = {'patternHistory', 'absEff', 'relEff', 'phase'};
for n = 1:numel(data)
for f = 1:length(fields)
val = data(n).(fields{f});
if ~isempty(val)
if iscell(val)
data(n) = set(data(n), fields{f}, val(1,1));
else
data(n) = set(data(n), fields{f}, val(1,:,:,:));
end
end
end
end
elseif isa(data, 'Dataset')
data = dataset2struct(data);
end
obj@Dataset(data)
% removing unneccesary data and prevent nested empty datasets
obj = set(obj, 'hash', [], 'tgtPhiCoeffs', []);
end % constructor
end
end