% Especifica el nombre del archivo Excel que deseas cargar
nombreArchivoTrafico = 'Anexo 4A - Tabla con informacion de Trafico.xlsx';
nombreArchivoIngresos = 'Anexo 4B - Tabla con informacion de Ingresos.xlsx';
nombreArchivoAccesos = 'Anexo 4C - Tabla con informacion de Accesos.xlsx';


datosTrafico = readtable(nombreArchivoTrafico);
datosIngresos = readtable(nombreArchivoIngresos);
datosAccesos = readtable(nombreArchivoAccesos);
% Supongamos que tienes una tabla llamada miTabla con columnas Año y Mes
datosTrafico.ANNO = num2str(datosTrafico.ANNO);  % Convierte la columna Año en cadena de caracteres
datosTrafico.MES = num2str(datosTrafico.MES);  % Convierte la columna Mes en cadena de caracteres

% Combina las columnas Año y Mes para crear la columna Fecha
datosTrafico.Fecha = datetime(strcat(datosTrafico.MES, '/', datosTrafico.ANNO), 'InputFormat', 'MM/yyyy');
% Supongamos que tienes una tabla llamada miTabla con columnas Año y Mes
datosIngresos.ANNO = num2str(datosIngresos.ANNO);  % Convierte la columna Año en cadena de caracteres
datosIngresos.MES = num2str(datosIngresos.MES);  % Convierte la columna Mes en cadena de caracteres

% Combina las columnas Año y Mes para crear la columna Fecha
datosIngresos.Fecha = datetime(strcat(datosIngresos.MES, '/', datosIngresos.ANNO), 'InputFormat', 'MM/yyyy');
% Supongamos que tienes una tabla llamada miTabla con columnas Año y Mes
datosAccesos.ANNO = num2str(datosAccesos.ANNO);  % Convierte la columna Año en cadena de caracteres
datosAccesos.MES = num2str(datosAccesos.MES);  % Convierte la columna Mes en cadena de caracteres

% Combina las columnas Año y Mes para crear la columna Fecha
datosAccesos.Fecha = datetime(strcat(datosAccesos.MES, '/', datosIngresos.ANNO), 'InputFormat', 'MM/yyyy');



YY_train_1 = [];
YY_train_2 = [];
YY_train_3 = [];

YY_test_1 = [];
YY_test_2 = [];
YY_test_3 = [];

YY_forecast_1 = [];
YY_forecast_2 = [];
YY_forecast_3 = [];

MM_minimo = [];
MM_max = [];

%Empresas = [6]
prc_test_forecas = 0.9;

for i = 4:7
    for nd = 1:3
        disp(i)
        y1 = table2array(datosTrafico(:,i));
        x1 = datosTrafico.Fecha;
        y2 = table2array(datosIngresos(:,i));
        x2 = datosIngresos.Fecha;
        y3 = table2array(datosAccesos(:,i));
        x3 = datosAccesos.Fecha;
        columnName1 = datosTrafico.Properties.VariableNames{i};
        columnName2 = datosIngresos.Properties.VariableNames{i};
        columnName3 = datosAccesos.Properties.VariableNames{i};
    
        columnName1 = strrep(columnName1, '_', ' ');
        columnName2 = strrep(columnName2, '_', ' ');
        columnName3 = strrep(columnName3, '_', ' ');
    
    
        % % Nuevo
        % % columnName1, "Trafico"
        % figure()
        % plot(x1 , y1)
        % title(sprintf("Datos originales \n %s _ %s",columnName1, "Trafico"))
        % xlabel("Años")
        % grid on
        % saveas(gcf, sprintf("señal_original %s _ %s .png",columnName1, "Trafico"));
        % 
        % % % columnName2, "Ingresos"
        % figure()
        % plot(x2 , y2)
        % title(sprintf("Datos originales \n %s _ %s",columnName2, "Ingresos"))
        % xlabel("Años")
        % grid on
        % saveas(gcf, sprintf("señal_original %s _ %s .png",columnName2, "Ingresos"));
        % 
        % % % columnName3, "Accesos"
        % figure()
        % plot(x3 , y3)
        % title(sprintf("Datos originales \n %s _ %s",columnName3, "Accesos"))
        % xlabel("Años")
        % grid on
        % saveas(gcf, sprintf("señal_original %s _ %s .png",columnName3, "Accesos"));




        % Difss
        N = length( y1 );
        index_cut = floor(prc_test_forecas*N);
        [signal_normalized, ~, ~] = minmax_scaler(y1);
        y_train = signal_normalized(1:index_cut);
        figure()
        subplot(2, 1, 1); % Subplot 1
        plot(x1(1:index_cut),y_train);
        title('Señal original');
        subplot(2, 1, 2); % Subplot 2
        grid on
        x_dif = diff(y_train,nd);
        n_diff = length(x_dif);
        dif_n = length(x1) - n_diff;
        plot(x1(1:n_diff),x_dif);
        title(sprintf("Señal con d = %d diferencias aplicadas",nd));
        %sgtitle(sprintf("Diferencias aplicadas a %s \n de la empresa %s",nombre_data, nombre_empresa));
        grid on
        saveas(gcf, sprintf("diferencias_aplicadas %s _ %s _%d.fig",columnName1, "Trafico", nd));

        % Difss
        N = length( y2 );
        index_cut = floor(prc_test_forecas*N);
        [signal_normalized, ~, ~] = minmax_scaler(y2);
        y_train = signal_normalized(1:index_cut);
        figure()
        subplot(2, 1, 1); % Subplot 1
        plot(x2(1:index_cut),y_train);
        title('Señal original');
        subplot(2, 1, 2); % Subplot 2
        grid on
        x_dif = diff(y_train,nd);
        n_diff = length(x_dif);
        dif_n = length(x2) - n_diff;
        plot(x2(1:n_diff),x_dif);
        title(sprintf("Señal con d = %d diferencias aplicadas",nd));
        %sgtitle(sprintf("Diferencias aplicadas a %s \n de la empresa %s",nombre_data, nombre_empresa));
        grid on
        saveas(gcf, sprintf("diferencias_aplicadas %s _ %s _%d .fig",columnName2, "Ingresos", nd));


        % Difss
        N = length( y3 );
        index_cut = floor(prc_test_forecas*N);
        [signal_normalized, minimo, maximo] = minmax_scaler(y3);
        y_train = signal_normalized(1:index_cut);
        figure()
        subplot(2, 1, 1); % Subplot 1
        plot(x3(1:index_cut),y_train);
        title('Señal original');
        subplot(2, 1, 2); % Subplot 2
        grid on
        x_dif = diff(y_train,nd);
        n_diff = length(x_dif);
        dif_n = length(x3) - n_diff;
        plot(x3(1:n_diff),x_dif);
        title(sprintf("Señal con d = %d diferencias aplicadas",nd));
        %sgtitle(sprintf("Diferencias aplicadas a %s \n de la empresa %s",nombre_data, nombre_empresa));
        grid on
        saveas(gcf, sprintf("diferencias_aplicadas %s _ %s _ %d .fig", columnName3, "Accesos", nd));


    end
end 