function checks = multiCheckbox(parameters)
% MULTICHECKBOX creates a flexible number of checkboxes.
%
% Example call
% >> checks = multiCheckbox({'Test1', 'Test2'})

N = numel(parameters);
f = figure('units', 'normalized',...
    'position', [0.1 0.4 0.2 0.5]);
for I = 1:N
    text(I) = uicontrol(f, 'style', 'edit', ...
        'enable', 'inactive', ...
        'string', parameters{I}, ...
        'units', 'normalized', ...
        'position', [0.3 0.95 - I*0.5/N 0.6 0.5/N - 0.02], ...
        'fontsize', 12);
    cb(I) = uicontrol(f, 'style', 'checkbox', ...
        'units', 'normalized', ...
        'position', [0.05 0.95 - I*0.5/N 0.1 0.5/N]);
end
pb = uicontrol(f, 'style', 'pushbutton', ...
    'units', 'normalized', ...
    'position', [0.2 0.1 0.6 0.15], ...
    'string', 'Submit', ...
    'fontsize', 12, ...
    'Callback', {@extractInfo, f, cb});
uiwait(f)
checks = getappdata(f, 'values');
close(f)

function extractInfo(~, ~, f, cb)

checks = nan(size(cb));
for I = 1:numel(cb)
    checks(I) = cb(I).Value;
end
setappdata(f, 'values', checks)
uiresume(f)
