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: multipleExpWeighted.m
    path of file: ./repos/CADET/src/cadet-mi/examples/parest
    
    the code of the file until where you have to start completion: function multipleExpWeighted()
%MULTIPLEEXPWEIGHTED Fits adsorption rates using two experiments with different noise levels and weighting
%
%   The goal is to fit the adsorption rates KA (which ultimately correspond to the equilibrium
%   constants due to quasi-stationary binding mode) in the load-wash-elution example using
%   artificial data. Two experiments with different operating conditions (i.e., gradient slope
%   and flow rate) are performed. Each experiment is subject to a different (artificial) noise
%   level and weighted accordingly.
%
%   See also LOADWASHELUTIONSMASINGLE, PARAMETERIZEDSIMULATIONWITHSENSITIVITIES,
%      MULTIPLEEXPLINKEDALLPARAMETERS, SINGLEEXPSEPARATECOMPONENTSWEIGHTED

% Copyright: (C) 2008-2024 The CADET Authors
%            See the license note at the end of the file.

	% Create fit object
	pf = ParameterFit();

	% Create first simulation (gradient slope 0.2 and velocity 5.75e-4) and obtain artificial data
	sim = createSimulation(1);
	res = sim.run();

	% Set model parameters and enable sensitivities
	params = cell(3, 1);
	params{1} = makeSensitivity([0], {'SMA_KA'}, [1], [-1], [-1], [0], [-1]);
	params{2} = makeSensitivity([0], {'SMA_KA'}, [2], [-1], [-1], [0], [-1]);
	params{3} = makeSensitivity([0], {'SMA_KA'}, [3], [-1], [-1], [0], [-1]);
	sim.setParameters(params, true(3, 1));


    
function multipleExpWeighted()
%MULTIPLEEXPWEIGHTED Fits adsorption rates using two experiments with different noise levels and weighting
%
%   The goal is to fit the adsorption rates KA (which ultimately correspond to the equilibrium
%   constants due to quasi-stationary binding mode) in the load-wash-elution example using
%   artificial data. Two experiments with different operating conditions (i.e., gradient slope
%   and flow rate) are performed. Each experiment is subject to a different (artificial) noise
%   level and weighted accordingly.
%
%   See also LOADWASHELUTIONSMASINGLE, PARAMETERIZEDSIMULATIONWITHSENSITIVITIES,
%      MULTIPLEEXPLINKEDALLPARAMETERS, SINGLEEXPSEPARATECOMPONENTSWEIGHTED

% Copyright: (C) 2008-2024 The CADET Authors
%            See the license note at the end of the file.

	% Create fit object
	pf = ParameterFit();

	% Create first simulation (gradient slope 0.2 and velocity 5.75e-4) and obtain artificial data
	sim = createSimulation(1);
	res = sim.run();

	% Set model parameters and enable sensitivities
	params = cell(3, 1);
	params{1} = makeSensitivity([0], {'SMA_KA'}, [1], [-1], [-1], [0], [-1]);
	params{2} = makeSensitivity([0], {'SMA_KA'}, [2], [-1], [-1], [0], [-1]);
	params{3} = makeSensitivity([0], {'SMA_KA'}, [3], [-1], [-1], [0], [-1]);
	sim.setParameters(params, true(3, 1));

	% Apply 4% gaussian noise to first experiment
	outlet = applyNoise(squeeze(res.solution.outlet{1}), 0.04);

	% Collect data of first experiment in cell array (one cell per wavelength)
	% Note that time points of the measurements are given in sim.solutionTimes
	data = cell(2, 1);
	data{1} = sum(outlet(:, 2:end