Tratamiento de ficheros en Matlab

Descargar el fichero .rar de la dirección
https://drive.google.com/a/unileon.es/file/d/0B6NAKkjT2LpeWlpvQU0ybGlybzA/view?usp=sharing
Dentro del archivo .rar existen dos ficheros, Dataset1.txt y Dataset_corto.txt. El fichero corto será utilizado como test con el fin de simplificar la depuración de código.
Se busca realizar un código lo más eficiente posible que cumpla los siguientes objetivos:
• Importar los datos del fichero a Matlab. Generar una matriz en la que la primera columna es la fecha hora de la muestra y las demás columnas se corresponden con los datos.
• Encontrar muestras perdidas en los datos sabiendo que el muestreo es constante a un minuto. Las muestras perdidas se rellenarán con NaN’s.
• Construir un histograma con los datos de la tensión y etiquetar la figura.
• Calcular el valor máximo de potencia consumida y el instante de tiempo en el que se produce
• Calcular el valor medio de la potencia consumida por hora, para ello agrupar los datos de potencias por hora y calcular la media con la función nanmean que descarta los valores NaN. Para facilitar el cálculo hacer que los datos comiencen en un instante de tiempo HH:00:00 y finalice en HH:59:00.
• Dibujar la gráfica de potencia horaria y etiquetar la gráfica


a=importdata('Dataset_corto.txt');
fecha1=datenum(a.textdata(2:end,1),'dd/mm/yy');
fecha2=datenum(a.textdata(2:end,2),'HH:MM:SS');
fecha=fecha1+fecha2-datenum('01/01/2015');
b=[fecha a.data]

[f,~]=size(b);
f=(etime(datevec(datestr(b(f,1))),datevec(datestr(b(1,1))))/60);

for q=1:f
    if ~isnan(b(q,1))
        if ~strcmp(datestr(addtodate(b(q,1),1,'minute')), datestr(b(q+1,1)))
            num=(etime(datevec(datestr(b(q+1,1))),datevec(datestr(b(q,1))))/60)-1
        end
    end
end

hist(b(:,4));title('Histograma del voltaje');xlabel('Voltajes');ylabel('Frecuencias')

[maximo,pos]=max(b(:,2))
datestr(datestr(b(pos,1)),'HH:MM:SS',0)
for q=0:23
    nanmean(b(hour(b(:,1))==q,2))
end

for q=1:10
    q=q-1;
end

q=datevec(datestr(b(1,1)))
w=datevec(datestr(b(1587,1)))
etime(w,q)
x=b(:,1)
y=b(:,2)
plot(x,y)
ylabel('Potencia')
xlabel('Horas')
title('Grafica de la distribucion de potencia')
datestick('x','HH:MM')