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: CS_reconstruction.m
    path of file: ./repos/CS_MoCo_LAB/reconstruction/matlab/CS_LAB_matlab
    
    the code of the file until where you have to start completion: function [image, imageCha, objOut] = CS_reconstruction(path, para)
% CS_RECONSTRUCTION main function to select the appropriate Compressed
% Sensing reconstruction
%
% input: 
% path      - path to file without specifying file extension
%           - path to directory containing files
%           - empty (for file dialog)
%           - kSpace to be reconstructed with dimensionalities:
%             cell array: NSlice x NChannels x NRepetitions x NAverages
%             each cell: 2D: yPhase x xFreq x (nTime/nPhases)
%                        3D: yPhase x xFreq x zPhase
%                        4D: yPhase x xFreq x zPhase x nTime/nPhases
% para      - struct containing to be modified reconstruction parameters
%           and/or struct with handover parameter
%           - path to parameter file
%
%
% output:
% image     reconstructed and sum-of-squared channel combined image
% imageCha  reconstructed individual coil images
% objOut    reconstruction parameters
%
%
% (c) copyright 2012 - 2016 under BSD license
% Thomas Kuestner, University of Tuebingen and University of Stuttgart, Germany
% (thomas.kuestner@{med.uni-tuebingen.de,iss.uni-stuttgart.de})
% 
% Please see license files (./licenses) for accompanied codes (which also 
% include own modifications) of:
% - ESPIRiT v0.1.8  in @ESPIRiT, utils/utils_ESPIRiT     under LICENSE_ESPIRiT       
% - bart v0.2.09    in utils/utils_BART                  under LICENSE_BART
% - SPIRiT v0.3     in @SPIRiT, utils/utils_GRAPPA, 
%                   utils/utils_SPIRiT                   under LICENSE_SPIRiT
% - sparseMRI v0.2  in @sparseMRI, @p2DFT, @A_operator,
%                   @TVOP                                under LICENSE_SPARSEMRI
% - L1Magic v1.11   in @L1_Magic                         under LICENSE_L1MAGIC
% - GIST            in utils/utils_Proximal/GIST         under LICENSE_GIST
% - Wavelab850      in @Wavelet, utils/utils_Wavelet     under LICENSE_WAVELAB
% - Rice Wavelet v3.0 in utils/utils_WaveletRice         under LICENSE_WAVELETRICE
% - Curvelab v2.1.3 in utils/utils_TRAFO/CurveLab-2.1.3  under LICENSE_CURVELAB
% - NUFFT           in @NUFFT, utils/utils_NUFFT         under LICENSE_NUFFT
% - DTCWT           in utils/utils_TRAFO/DTCWT           under LICENSE_DTCWT
% - Shearlet        in utils/utils_TRAFO/Shearlet        under LICENSE_SHEARLET
% - Denoising       in utils/utils_Proximal/Denoising    under LICENSE_DENOISING

warning('off','MATLAB:dispatcher:nameConflict');
warning('off','MATLAB:mat2cell:TrailingUnityVectorArgRemoved');


    
function [image, imageCha, objOut] = CS_reconstruction(path, para)
% CS_RECONSTRUCTION main function to select the appropriate Compressed
% Sensing reconstruction
%
% input: 
% path      - path to file without specifying file extension
%           - path to directory containing files
%           - empty (for file dialog)
%           - kSpace to be reconstructed with dimensionalities:
%             cell array: NSlice x NChannels x NRepetitions x NAverages
%             each cell: 2D: yPhase x xFreq x (nTime/nPhases)
%                        3D: yPhase x xFreq x zPhase
%                        4D: yPhase x xFreq x zPhase x nTime/nPhases
% para      - struct containing to be modified reconstruction parameters
%           and/or struct with handover parameter
%           - path to parameter file
%
%
% output:
% image     reconstructed and sum-of-squared channel combined image
% imageCha  reconstructed individual coil images
% objOut    reconstruction parameters
%
%
% (c) copyright 2012 - 2016 under BSD license
% Thomas Kuestner, University of Tuebingen and University of Stuttgart, Germany
% (thomas.kuestner@{med.uni-tuebingen.de,iss.uni-stuttgart.de})
% 
% Please see license files (./licenses) for accompanied codes (which also 
% include own modifications) of:
% - ESPIRiT v0.1.8  in @ESPIRiT, utils/utils_ESPIRiT     under LICENSE_ESPIRiT       
% - bart v0.2.09    in utils/utils_BART                  under LICENSE_BART
% - SPIRiT v0.3     in @SPIRiT, utils/utils_GRAPPA, 
%                   utils/utils_SPIRiT                   under LICENSE_SPIRiT
% - sparseMRI v0.2  in @sparseMRI, @p2DFT, @A_operator,
%                   @TVOP                                under LICENSE_SPARSEMRI
% - L1Magic v1.11   in @L1_Magic                         under LICENSE_L1MAGIC
% - GIST            in utils/utils_Proximal/GIST         under LICENSE_GIST
% - Wavelab850      in @Wavelet, utils/utils_Wavelet     under LICENSE_WAVELAB
% - Rice Wavelet v3.0 in utils/utils_WaveletRice         under LICENSE_WAVELETRICE
% - Curvelab v2.1.3 in utils/utils_TRAFO/CurveLab-2.1.3  under LICENSE_CURVELAB
% - NUFFT           in @NUFFT, utils/utils_NUFFT         under LICENSE_NUFFT
% - DTCWT           in utils/utils_TRAFO/DTCWT           under LICENSE_DTCWT
% - Shearlet        in utils/utils_TRAFO/Shearlet        under LICENSE_SHEARLET
% - Denoising       in utils/utils_Proximal/Denoising    under LICENSE_DENOISING

warning('off','MATLAB:dispatcher:nameConflict');
warning('off','MATLAB:mat2cell:TrailingUnityVectorArgRemoved');

% global prop

% prepare m-files
currpath = fileparts(mfilename('fullpath'));
addpath(genpath([currpath,filesep,'utils']));
addpath(genpath([currpath,filesep,'io']));
addpath(genpath([currpath,filesep,'preproc']));
addpath(genpath([currpath,filesep,'postproc']));

% load ADCs
if(nargin == 0 || ~exist('path','var') || isempty(path))
    if(strcmp(getenv('computername'),'M123PC'))
        defpath = 'K:\Compressed Sensing\Rohdaten\3D';
    else
        defpath = 'S:\Rohdaten\Thomas\ktFOCUSS\3D';
    end