Suponiendo que el archivo de datos tiene el formato indicado anteriormente, se puede usar TEXTSCAN para leer los datos:
fid = fopen('data.txt','rt');
C = textscan(fid,'%s %s %s %d','Delimiter','.','CollectOutput',1);
fclose(fid);
La primera celda de C
contendrá una serie de células N-por-3 de cuerdas (las partes de la fecha) y la segunda celda de C
contendrá un vector N-by-1 de las mediciones de datos. Se puede crear un número de fecha para cada medición mediante la concatenación primero las 3 cadenas más pequeñas en una cadena de fecha y luego usando la función DATENUM:
t = datenum(strcat(C{1}(:,3),'-',C{1}(:,2),'-',C{1}(:,1)));
data = C{2};
Una vez que tenga un vector de números de fecha t
para ir con su vector de mediciones data
, a continuación, puede trazarlos:
plot(t,data,'*'); %# Plot the points as asterisks
Ahora, puede cambiar las etiquetas del eje x para mostrar las fechas reales. Una opción es usar la función DATETICK, una solución fácil y elegante dada en steven's answer. Otra opción es utilizar la función DATESTR para crear las etiquetas usted mismo, a continuación, modificar los XTick y XTickLabel propiedades de los ejes actuales:
xpts = min(t):max(t); %# Make a full vector, filling in missing dates
set(gca,'XTick',xpts,'XTickLabel',datestr(xpts)); %# Set axes properties
NOTA: Sea cual sea la opción que elija para cambiar el eje x etiquetas para fechar cadenas, puede tener problemas con las etiquetas solapándose entre sí si las marcas están demasiado juntas. Puede solucionar esto reduciendo o reposicionando las marcas a lo largo del eje x (cambiando la propiedad XTick) o ajustando la propiedad de los ejes FontSize. Si desea rotar las etiquetas para que quepan, deberá borrar las etiquetas y crear una nueva rotativa text objects para ellas.La siguiente presentación en The MathWorks File Exchange hace precisamente eso:
1: agradable encontrar. No sabía acerca de esa función. – gnovice
Esto no está actualizado. Ahora se debe utilizar de fecha y hora http://www.mathworks.com/help/matlab/matlab_prog/plot-dates-and-durations.html – hyprfrcb