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: BF_NormalizeMatrix.m
    path of file: ./repos/hctsa/PeripheryFunctions
    
    the code of the file until where you have to start completion: function dataMatrixNorm = BF_NormalizeMatrix(dataMatrix,normMethod,isTraining)
% BF_NormalizeMatrix    Normalizes all columns of an input matrix.
%
%---INPUTS:
% dataMatrix, the input data matrix
% normMethod, the normalization method to use (see body of the code for options)
% isTraining, learn the normalization parameters just on this training portion

    
function dataMatrixNorm = BF_NormalizeMatrix(dataMatrix,normMethod,isTraining)
% BF_NormalizeMatrix    Normalizes all columns of an input matrix.
%
%---INPUTS:
% dataMatrix, the input data matrix
% normMethod, the normalization method to use (see body of the code for options)
% isTraining, learn the normalization parameters just on this training portion
%             of data, then apply it to the full dataset (required for training
%             /testing procedures where the testing data has to remain unseen).
%             Should be input as a logical of the same size as the number of rows
%             in the dataMatrix.
%
%---OUTPUT:
% dataMatrixNorm, the normalized matrix
%
% NaNs are ignored -- only real data is used for the normalization

% ------------------------------------------------------------------------------
% Copyright (C) 2020, Ben D. Fulcher <ben.d.fulcher@gmail.com>,
% <http://www.benfulcher.com>
%
% If you use this code for your research, please cite the following two papers:
%
% (1) B.D. Fulcher and N.S. Jones, "hctsa: A Computational Framework for Automated
% Time-Series Phenotyping Using Massive Feature Extraction, Cell Systems 5: 527 (2017).
% DOI: 10.1016/j.cels.2017.10.001
%
% (2) B.D. Fulcher, M.A. Little, N.S. Jones, "Highly comparative time-series
% analysis: the empirical structure of time series and their methods",
% J. Roy. Soc. Interface 10(83) 20130048 (2013).
% DOI: 10.1098/rsif.2013.0048
%
% This function is free software: you can redistribute it and/or modify it under
% the terms of the GNU General Public License as published by the Free Software
% Foundation, either version 3 of the License, or (at your option) any later
% version.
%
% This program is distributed in the hope that it will be useful, but WITHOUT
% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
% FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
% details.
%
% You should have received a copy of the GNU General Public License along with
% this program. If not, see <http://www.gnu.org/licenses/>.
% ------------------------------------------------------------------------------

% ------------------------------------------------------------------------------
%% Check inputs, set defaults
% ------------------------------------------------------------------------------

if nargin < 2 || isempty(normMethod)
    fprintf(1,'We''re normalizing using sigmoid transform by default\n');
    normMethod = 'sigmoid';
end