function [maximo,minimo,mediana,media,desviacion,xmax_loc,...
        ymax_loc,xmin_loc,ymin_loc]=caract_general(X,Y,num_canales,flag)
%Función que pretende realizar una caracterizacion general de las señales.
%En ella vamos a calcular el valor máximo, mínimo, la mediana, la media, la moda,
%la desviación estandar, los máximos y mínimos locales.
%Los datos se devuelven en matrices donde cada elemento de columna
%corresponde respectivamente al maximo, minimo... de cada canal.

maximo      = [];                   %máximo de las señales
minimo      = [];                   %minimo de las señales
mediana     = [];                   %mediana de las señales
media       = [];                   %media de las señales
desviacion  = [];                   %desviación de las señales
xmax_loc    = [];                   %posición en t de los máximo locales
ymax_loc    = [];                   %valor de los máximos locales
xmin_loc    = [];                   %posición en t de los mínimos locales
ymin_loc    = [];                   %valor de los mínimos locales
% flag=0                              %Se usa la función para una porción de señal
                                        %en caso contrario flag=2
[i,j]=max(Y);
%j instante de tiempo en que se produce el máximo.
%i valor del máximo propiamente dicho
maximo=i;

[h,k]=min(Y);
%k instante de tiempo en que se produce el mínimo
%h valor del mínimo propiamente dicho
minimo=h;

mediana=median(Y);

media=mean(Y);

desviacion=std(Y);

%imregionalmax(X) e imregional min me devuelve una matriz con 1 en las posiciones donde
%existe un maximo y minimo respectivamente
for i=1:num_canales+flag
    h=imregionalmax(Y(:,i));
    ymax_loc=[ymax_loc,h.*Y(:,i)];
    xmax_loc=[xmax_loc,h.*X(:,i)];
    
    n=imregionalmin(Y(:,i));
    ymin_loc=[ymin_loc,n.*Y(:,i)];
    xmin_loc=[xmin_loc,n.*X(:,i)];
end





