Análisis de datos

Existe una serie de funciones para el análisis de datos que realizan la operación para cada columnas de manera independiente, devolviendo un vector fila con tantos elementos como columnas tenga la matriz con el resultado.

En caso de aplicarse a un vector, sea fila o columna, realizan la operación sobre todos los elementos del vector y devuelven un escalar.

Las funciones más interesantes de este grupo son:

mean(X)
media de los elementos de cada columna.
median(X)
mediana de los elementos de cada columna.
std(X)
desviación estándar de los elementos de cada columna.
[M,i]=max(X)
devuelve en M el máximo de cada una de las columnas de X. En i se devuelve, para cada columna, el índice de la fila en la que se encontró el máximo.
[m,i]=min(X)
devuelve en m el mínimo de cada una de las columnas de X. En i se devuelve, para cada columna, el índice de la fila en la que se encontró el mínimo.
[S,I]=sort(X)
devuelve en S una matriz, de las mismas dimensiones que X, con los elementos ordenados de manera creciente por columnas. I es una matriz con los índices, de la matriz original, que da lugar a la nueva ordenación. Es decir que  S==[X(I(:,1),1),  X(I(:,2),2), ...]
sum(X)
suma de los elementos de cada columna.
sumsq(X)
suma del cuadrado de los elementos de cada columna.
cumsum(X)
devuelve una matriz, de las mismas dimensiones que X, con la suma acumulada de los elementos de cada columna.
prod(X)
producto de los elementos de cada columna.
cumprod(X)
devuelve una matriz, de las mismas dimensiones que X, con el producto acumulado de los elementos de cada columna.
cov(X,Y)
calcula la matriz de covarianza entre dos observaciones.
corrcoef(X,Y)
calcula la matriz de correlación entre dos observaciones

Ejemplos

Si tenemos una matiz Datos de 10 filas y 5 columnas.

  • mean(Datos) devolverá un vector fila de 5 elementos con la media de los datos en cada columna.
  • max(Datos) devolverá un vector fila de 5 elementos con el elemento más grande en cada columna.
  • [m,i]=min(Datos) devolverá en m un vector fila de 5 elementos con en valor mínimo de cada columna. Y en i también un vector fila de 5 elementos indicando en que fila, de la correspondiente columna, se encontraba el elemento mínimo.
  • min(min(Datos)) devolverá un escalar con el mínimo valor de toda la matriz Datos.
  • sort(Datos) devolverá la matriz Datos con los elementos ordenados por columnas. [S,I]=sort(Datos)devolverá, además, la posición donde estaba cada elemento en la matriz original.

Ejemplos

Dada una matriz Val de 5 filas y 3 columnas.

  • sum(Val) devuelve un vector fila de 3 elementos con la suma de los elementos cada columna.
  • sum(sum(Val)) devolverá un escalar con la suma de todos los elementos de la matriz Val.
  • cumsum(Val) devolverá una matriz, de 5 filas y 3 columnas, donde se tendrá, en cada columna, la suma acumulada.
  • prod(prod(Val)) devolverá un escalar con el producto de todos los elementos de Val.

Organización de datos

Debido a que estas funciones trabajan por columnas, si tenemos datos de distinto tipo pero relacionados debemos colocar los del mismo tipo en la misma columna.

Por ejemplo, si obtenemos la evolución de la salida y de un sistema ante una entrada u, para distintos instante de tiempo t, lo más conveniente es colocar en una columna los instantes de tiempo, en otra los valores de la entrada y en la tercera los valores de la salida:

Matriz de datos

De esta forma las funciones que acabamos de ver funcionarán adecuadamente si queremos conocer, por ejemplo, los valores máximos, mínimos, medios, etc. del tiempo, entrada y salida.

Ejemplos

Dado la matriz Evo de tres columnas que contiene:

  1. Instantes de tiempo t
  2. Señal u
  3. Señal y
  • Conocer el valor mínimo de y así como el instante de tiempo en se alcanzó:
    [ymin,imin]=min( Evo(:,3) )
    tYmin=Evo(imin,1)
  • Conocer el valor medio de u a partir de los 5 segundos
    mean( Evo( Evo(:,1)>5, 2 ) ).
  • Conocer el valor máximo que alcanzó u así como el valor que tenía y en ese momento:
    [umax, imax]=max( Evo(:,2) )
    y_umax = Evo( imax, 3 )

Obra colocada bajo licencia Creative Commons Attribution Non-commercial Share Alike 3.0 License