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: multipleExpLinkedAllParameters.m
    path of file: ./repos/CADET/src/cadet-mi/examples/parest
    
    the code of the file until where you have to start completion: function multipleExpLinkedAllParameters()
%MULTIPLEEXPLINKEDALLPARAMETERS Fits adsorption rates using two experiments with all parameters linked between the experiments
%
%   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. Only one wavelength is observed in each experiment.
%
%   By default, parameters of different experiments are treated as individual parameters.
%   If the parameter is actually the same parameter, because it is the same model after
%   all, parameters can be linked between experiments. This way, linked parameters are
%   considered the same. In this particular example, all parameters are linked.
%
%   Note that links between parameters inside a single experiment are not supported. Use
%   joint parameters for this purpose as shown in JOINTSENSITIVITIES.
%
%   See also LOADWASHELUTIONSMASINGLE, PARAMETERIZEDSIMULATIONWITHSENSITIVITIES,
%      SINGLEEXPJOINTCOMPONENTS, JOINTSENSITIVITIES, MULTIPLEEXPLINKEDSOMEPARAMETERS

% 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));

	% 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(1, 1);
	data{1} = squeeze(res.solution.outlet{1}(:, 1, 2));

	% Specify which components are observed in which factor (extinction coefficient) for each wavelength
	idxComp = cell(1, 1);
	idxComp{1} = [0 1 0 0]; % 528nm wavelength: Cytochrome (component 1, factor 1)

	% Add the experiment to the fit (unit operation 0 is observed, which is the GRM) including name
	% of the experiment and the different wavelengths
	pf.addExperiment(data, sim, [0], idxComp, [], [], [], [], 'Experiment1', {'528nm'});


	% Create second simulation (gradient slope 0.3 and velocity 2.5e-4) and obtain artificial data
	sim = createSimulation(2);
	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 multipleExpLinkedAllParameters()
%MULTIPLEEXPLINKEDALLPARAMETERS Fits adsorption rates using two experiments with all parameters linked between the experiments
%
%   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. Only one wavelength is observed in each experiment.
%
%   By default, parameters of different experiments are treated as individual parameters.
%   If the parameter is actually the same parameter, because it is the same model after
%   all, parameters can be linked between experiments. This way, linked parameters are
%   considered the same. In this particular example, all parameters are linked.
%
%   Note that links between parameters inside a single experiment are not supported. Use
%   joint parameters for this purpose as shown in JOINTSENSITIVITIES.
%
%   See also LOADWASHELUTIONSMASINGLE, PARAMETERIZEDSIMULATIONWITHSENSITIVITIES,
%      SINGLEEXPJOINTCOMPONENTS, JOINTSENSITIVITIES, MULTIPLEEXPLINKEDSOMEPARAMETERS

% 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));

	% 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(1, 1);
	data{1} = squeeze(res.solution.outlet{1}(:, 1, 2));

	% Specify which components are observed in which factor (extinction coefficient) for each wavelength
	idxComp = cell(1, 1);
	idxComp{1} = [0 1 0 0]; % 528nm wavelength: Cytochrome (component 1, factor 1)

	% Add the experiment to the fit (unit operation 0 is observed, which is the GRM) including name
	% of the experiment and the different wavelengths
	pf.addExperiment(data, sim, [0], idxComp, [], [], [], [], 'Experiment1', {'528nm'});


	% Create second simulation (gradient slope 0.3 and velocity 2.5e-4) and obtain artificial data
	sim = createSimulation(2);
	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));

	% 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(1, 1);
	data{1} = sum(squeeze(res.solution.outlet{1}(:, 1, 2:end