You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: sampleParameters.m
    path of file: ./repos/CADET/src/cadet-mi/examples/publications/LewekeEtAl2018/expdes
    
    the code of the file until where you have to start completion: function [samples, sampledShape, inTime, optResult] = sampleParameters(idxPulseLength, opMode, configOpts)
%SAMPLEPARAMETERS Samples parameter estimates for perturbed pulse shapes
%
%   The function collects samples of parameter estimates for perturbed pulse
%   shapes in a one component system using a Langmuir isotherm. The model
%   considered here describes affinity chromatography of lysozyme on Cibacron
%   Blue Sepharose CL-6B at pH 2.7. Model parameters are based on
%   benchmark 1 of the following publication:
%   A. Püttmann, S. Schnittert, U. Nau
    
function disableSensitivities(sim)
		%DISABLESENSITIVITIES Disables sensitivity computation

		if sim.nSensitiveParameters > 0
			% Remove sensitivities but keep as variable parameters
			sim.clearSensitivities(true);
		end
	end

	function enableSensitivities(sim)
		%ENABLESENSITIVITIES Enables sensitivity computation

		if sim.nSensitiveParameters > 0
			return;
		end

		sim.clearParameters();
		sim.setParameters(params, true(numel(params), 1));
	end
end

function [sim] = createSimulator()
%CREATESIMULATOR Creates the model of the process and returns it
% The model parameters are based on benchmark 1 of
% A. Püttmann, S. Schnittert, U. Naumann & E. von Lieres (2013).
% Fast and accurate parameter sensitivities for the general rate model of
% column liquid chromatography.
% Computers & Chemical Engineering, 56, 46–57.
% doi:10.1016/j.compchemeng.2013.04.021
% The binding mode has been set to quasi-stationary and the equilibrium
% constant has been decreased by two orders of magnitude.

	% General rate model unit operation
	mGrm = SingleGRM();

	% Discretization
	mGrm.nComponents = 1;
	mGrm.nCellsColumn = 64; % Attention: This is very low and only used for illustration (short runtime)
	mGrm.nCellsParticle = 16; % Attention: This is very low and only used for illustration (short runtime)
	mGrm.nBoundStates = ones(mGrm.nComponents, 1); % Number of bound states for each component

	% Initial conditions (empty column)
	mGrm.initialBulk = [0.0]; % [mol / m^3], also used for the particle mobile phase
	mGrm.initialSolid = [0.0]; % [mol / m^3]

	% Transport
	mGrm.dispersionColumn          = 5.75e-8; % [m^2 / s]
	mGrm.filmDiffusion             = [6.9e-6]; % [m/s]
	mGrm.diffusionParticle         = [6.07e-11]; % [m^2 / s]
	mGrm.diffusionParticleSurface  = [0.0]; % [m^2 / s]
	mGrm.interstitialVelocity      = 5.75e-4; % [m/s]

	% Geometry
	mGrm.columnLength        = 0.014; % [m]
	mGrm.particleRadius      = 4.5e-5; % [m]
	mGrm.porosityColumn      = 0.37; % [-]
	mGrm.porosityParticle    = 0.75; % [-]

	% Adsorption
	mLangmuir = LangmuirBinding();
	mLangmuir.kineticBinding = false; % Kinetic binding
	mLangmuir.kA         = [1.14]; % Adsorption rate [m^3 / (mol * s)]
	mLangmuir.kD         = [0.2]; % Desorption rate [1 / s]
	mLangmuir.qMax       = [4.88]; % Capacity [mol / m^3]
	mGrm.bindingModel = mLangmuir;

	% Specify inlet profile

	% Reserve space: nSections x nComponents (a section can be thought of being a 
	% step in the process, see below)
	mGrm.constant       = zeros(2, mGrm.nComponents);
	mGrm.linear         = zeros(2, mGrm.nComponents);
	mGrm.quadratic      = zeros(2, mGrm.nComponents);
	mGrm.cubic          = zeros(2, mGrm.nComponents);

	% Section 1: Loading phase
	mGrm.constant(1, 1)  = 1;  % [mol / m^3] component 1 - will be overwritten later

	% Construct and configure simulator
	sim = Simulator.create();
	sim.solutionTimes = linspace(0, 1600, 1601); % [s], time points at which solution is computed

	% sectionTimes holds the sections and sectionContinuity indicates whether
	% the transition between two adjacent sections is continuous
	sim.sectionTimes = [0, 60, 1600]; % [s]
	sim.sectionContinuity = [false];

	sim.nThreads = 2; % Use 2 CPU cores for computation

	% Hand model over to simulator	
	sim.model = mGrm;
end