-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrs_initialX.m
More file actions
44 lines (38 loc) · 1.7 KB
/
rs_initialX.m
File metadata and controls
44 lines (38 loc) · 1.7 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
37
38
39
40
41
42
43
function InitialX = rs_initialX(c,p,initialize)
% Returns the select rows from the initial MCS.
% By Resul Al @DTU
rng('default');
k = 10*p.dim; % initial design size
if nargin<3, initialize='FeasibleLHS'; end
if strcmpi(initialize,'LHS')
InitialX = rs_sampleLHS(k,p.lbs,p.ubs); end
if strcmpi(initialize,'FeasibleLHS') % needs kspace and designID
load(c.GSAdata,'kspace_long','kspace');
load(c.MCSdata,'space');
FeasibleX = rs_FeasibleX(c.MCSdata, c.efflimits); % needs a completed simulation results
T_FeasibleX = array2table(FeasibleX, 'VariableNames',kspace_long.ParNames);
FeasibleX = T_FeasibleX{:,kspace.ParNames};
n_feasible=size(FeasibleX,1);
if n_feasible<k
AdditionalX = rs_sampleLHS(k-n_feasible,p.lbs,p.ubs);
InitialX = [FeasibleX;AdditionalX];
else
InitialX = FeasibleX(randsample(n_feasible,k),:);
end
end
if strcmpi(initialize,'hLHS-hFeas') % half LHS and hald Feasible
load(c.GSAdata,'kspace_long','kspace');
load(c.MCSdata,'space');
FeasibleX = rs_FeasibleX(c.MCSdata, c.efflimits); % needs a completed simulation results
T_FeasibleX = array2table(FeasibleX, 'VariableNames',kspace_long.ParNames);
FeasibleX = T_FeasibleX{:,kspace.ParNames};
n_feasible=size(FeasibleX,1);
if n_feasible<k/2
AdditionalX = rs_sampleLHS(k-n_feasible,p.lbs,p.ubs);
InitialX = [FeasibleX;AdditionalX];
else
AdditionalX = rs_sampleLHS(k/2,p.lbs,p.ubs);
InitialX = [FeasibleX(randsample(n_feasible,k/2),:) ; AdditionalX];
end
end
end