function designMatrix = genDesignMatrix(subjectNo, imgList)
% Generates a design matrix

%initialize random number generator
rng(100*subjectNo);

%Factor filter
F1LevA = 1;
F1LevB = 2;
F1LevC = 0;

%Factor delay
F2LevA = 0.3;
F2LevB = 0.5;
F2LevC = 0.7;

F1 = [F1LevA, F1LevB, F1LevC];
F2 = [F2LevA, F2LevB, F2LevC];

NREP = length(imgList);
NTRIALS = length(F1) * length(F2) * NREP;

% Preallocate an empty design matrix
design = NaN(NTRIALS, 5);

ID = subjectNo;
cnt = 1;
for i = 1:length(F1)
    for j = 1:length(F2)
        for img = 0:NREP-1
            design(cnt, : ) = [0 ID F1(i) F2(j) img];
            cnt=cnt+1;
        end
    end
end

% Shuffle
design = design(randperm(length(design)),:);

% Create index
design(:,1) = 1:length(design);

designMatrix = design;
end