forked from sgarrettroe/data_analysis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerateExperimentCode.m
40 lines (35 loc) · 1.03 KB
/
generateExperimentCode.m
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
function out = generateExperimentCode(varargin)
% generateExperimentCode Create a random code for experiment tracking.
% C = generateExperimentCode provides a random alphanumeric code using
% the default version.
%
% C = generateExperimentCode('version',v) generates the code in version
% v.
%
% Version 1: four digit uppercase alpha plus four digit numeric code,
% e.g. ABCD1234.
% parse input args
default_version = 1;
MAX_VERSION = 1;
p = inputParser;
validVersionNumber = @(x) isnumeric(x) & x<=MAX_VERSION;
addParameter(p,'version',default_version,validVersionNumber);
parse(p,varargin{:});
version = p.Results.version;
switch version
case 1
f = @codeVersion1;
otherwise
error('unknown version number %f',version)
end
out = f;
end
function out = codeVersion1
% codeVersion1 generate codes like ABCD1234
n_letters = 4;
n_numbers = 4;
letter_list = 'A':'Z';
number_list = '0':'9';
out = [letter_list(randi(numel(letter_list),[1,n_letters])),...
number_list(randi(numel(number_list),[1,n_numbers]))];
end