Skip to content

Commit 3a2f3df

Browse files
committed
Update parameter parsing from #13
1 parent 2609ecf commit 3a2f3df

File tree

2 files changed

+48
-53
lines changed

2 files changed

+48
-53
lines changed

code/GLG_Instance.m

Lines changed: 1 addition & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,7 @@ function GLG_Instance(Data,varargin)
66
%
77
tic
88
%%% InputParser
9-
p = inputParser;
10-
def_lambda = 0.01;
11-
def_dT = 1;
12-
def_rep = 0;
13-
def_width = 2;
14-
def_probzero = 0;
15-
def_family = 'gaussian';
16-
def_L = 15;
17-
def_ID = 0;
18-
def_outdir = 'Output';
19-
def_prob_remove_samples = 0.2;
20-
def_date = date;
21-
%
22-
expected_family = {'gaussian','poisson'};
23-
validScalar = @(x) isnumeric(x) && isscalar(x) && (x >= 0);
24-
validFile = @(x) isfilecomp(x);
25-
validString = @(x) ischar(x) && isempty(regexp(x,'[\/?*''."<>|]','once'));
26-
validInteger = @(x) (x - floor(x)==0) && (x >= 0);
27-
validLags = @(x) (x - floor(x)==0) && (p.Results.dT*x)<100;
28-
validProb = @(x) isnumeric(x) && isscalar(x) && (x >= 0) &&(x<1);
29-
validDate = @(x) any(ismember({datestr(datenum(x) ,['mm/dd/yyyy']) datestr(datenum(x))},x));
30-
addRequired(p,'Data',validFile);
31-
addParameter(p,'family',def_family,@(x) any(validatestring(x,expected_family)));
32-
addParameter(p,'outdir',def_outdir,validString);
33-
addParameter(p,'lambda',def_lambda,validScalar);
34-
addParameter(p,'dT',def_dT,validScalar);
35-
addParameter(p,'num_lags',def_L,validLags);
36-
addParameter(p,'kernel_width',def_width,validScalar);
37-
addParameter(p,'prob_zero_removal',def_probzero,validProb);
38-
addParameter(p,'prob_remove_samples',def_prob_remove_samples,validProb);
39-
addParameter(p,'replicate',def_rep,validInteger);
40-
addParameter(p,'ID',def_ID,validInteger);
41-
addParameter(p,'date',def_date,validDate);
42-
parse(p,Data,varargin{:});
43-
params = p.Results;
44-
params.p1 = p.Results.dT*p.Results.num_lags;
45-
params.DateNumber = datenum(params.date);
9+
params = parseParams(Data,varargin{:})
4610
mkdir(params.outdir)
4711
%%% End InputParser
4812
tic;
@@ -89,20 +53,4 @@ function GLG_Instance(Data,varargin)
8953
if isdeployed
9054
quit;
9155
end
92-
end
93-
94-
function y = isfilecomp(x)
95-
if verLessThan('matlab','9.3')
96-
if (exist([x '.mat'], 'file') == 2)||(exist(x, 'file') == 2)
97-
y = 1;
98-
else
99-
y = 0;
100-
end
101-
else
102-
if (isfile([x '.mat'])||isfile(x))
103-
y = 1;
104-
else
105-
y = 0;
106-
end
107-
end
10856
end

code/parseParams.m

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
function params = parseParams(Data,varargin)
2+
p = inputParser;
3+
def_lambda = 0.01;
4+
def_dT = 1;
5+
def_rep = 0;
6+
def_width = 2;
7+
def_probzero = 0;
8+
def_family = 'gaussian';
9+
def_L = 15;
10+
def_ID = 0;
11+
def_outdir = 'Output';
12+
def_prob_remove_samples = 0.2;
13+
def_date = date;
14+
%
15+
expected_family = {'gaussian','poisson'};
16+
validScalar = @(x) isnumeric(x) && isscalar(x) && (x >= 0);
17+
validFile = @(x) isfilecomp(x);
18+
validString = @(x) ischar(x) && isempty(regexp(x,'[\/?*''."<>|]','once'));
19+
validInteger = @(x) (x - floor(x)==0) && (x >= 0);
20+
validLags = @(x) (x - floor(x)==0) && (p.Results.dT*x)<100;
21+
validProb = @(x) isnumeric(x) && isscalar(x) && (x >= 0) &&(x<1);
22+
validDate = @(x) any(ismember({datestr(datenum(x) ,['mm/dd/yyyy']) datestr(datenum(x))},x));
23+
addRequired(p,'Data',validFile);
24+
addParameter(p,'family',def_family,@(x) any(validatestring(x,expected_family)));
25+
addParameter(p,'outdir',def_outdir,validString);
26+
addParameter(p,'lambda',def_lambda,validScalar);
27+
addParameter(p,'dT',def_dT,validScalar);
28+
addParameter(p,'num_lags',def_L,validLags);
29+
addParameter(p,'kernel_width',def_width,validScalar);
30+
addParameter(p,'prob_zero_removal',def_probzero,validProb);
31+
addParameter(p,'prob_remove_samples',def_prob_remove_samples,validProb);
32+
addParameter(p,'replicate',def_rep,validInteger);
33+
addParameter(p,'ID',def_ID,validInteger);
34+
addParameter(p,'date',def_date,validDate);
35+
parse(p,Data,varargin{:});
36+
params = p.Results;
37+
params.p1 = p.Results.dT*p.Results.num_lags;
38+
params.DateNumber = datenum(params.date);
39+
end
40+
41+
function y = isfilecomp(x)
42+
if (exist([x '.mat'], 'file') == 2)||(exist(x, 'file') == 2)
43+
y = 1;
44+
else
45+
y = 0;
46+
end
47+
end

0 commit comments

Comments
 (0)