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: GaussJacobi.m
    path of file: ./repos/Metodos-numericos-Numerical-Methods
    
    the code of the file until where you have to start completion: function [M,xn] = GaussJacobi(A,B,xi,Niter,es)
%Autor: Rolando Valdez Guzmán
%Alias: Tutoingeniero
%Canal de Youtube: https://www.youtube.com/channel/UCU1pdvVscOdtLpRQBp-TbWg
%Versión: 1.1
%Actualizado: 31/dic/2021

% ESTA FUNCION PIDE LOS SIGUIENTES DATOS DE ENTRADA:

% A = matriz cuadrada de coeficientes del sistema de ecuaciones.
% B = Vector columna de resultados de cada ecuación.
% xi = Valores iniciales para cada variable.
% N = Número de iteraciones
% es = Error estimado en porcentaje

%METODOS DE SOLUCION


    
function [M,xn] = GaussJacobi(A,B,xi,Niter,es)
%Autor: Rolando Valdez Guzmán
%Alias: Tutoingeniero
%Canal de Youtube: https://www.youtube.com/channel/UCU1pdvVscOdtLpRQBp-TbWg
%Versión: 1.1
%Actualizado: 31/dic/2021

% ESTA FUNCION PIDE LOS SIGUIENTES DATOS DE ENTRADA:

% A = matriz cuadrada de coeficientes del sistema de ecuaciones.
% B = Vector columna de resultados de cada ecuación.
% xi = Valores iniciales para cada variable.
% N = Número de iteraciones
% es = Error estimado en porcentaje

%METODOS DE SOLUCION

%Método 1: Si Niter está vacío (Niter = []) entonces se debe especificar un
%error relativo máximo para converger.
%Método 2: Si "es" está vacío ("es" = []) entonces se debe especificar un
%número máximo de iteraciones para el código.


% VARIABLES DE SALIDA:

% M = Tabla de iteraciones para los valores de cada variable y sus errores
% aproximados.
% xn = Resultados del sistema tras la convergencia.

%~~~~~~~~~~~~~~~Protección contra errores en las entradas~~~~~~~~~~~~~~~~~%
if nargin < 5                 
    error('Insuficientes datos de entrada. Lea las instrucciones del código para más información');
else                          
    if size(A,1) ~= size(A,2)
        error('Se necesita que la matriz A sea cuadrada')
    elseif size(B,2) ~= 1
        error('B debe ser un vector columna');
    elseif size(A,1) ~= size(B,1)
        error('El número de filas de A no coincide con el de B. Sistema inconsistente');
    elseif size(A,1) ~= length(xi)
        error('Se debe ingresar un valor inicial para cada variable del sistema');
    end