2010-04-28 5 views
0

Un moyen facile de lire toutes les colonnes dans MATLAB?Horodatateurs MATLAB lecture

mon format est

date time y1 y2 y3 y4 .........................  
4/27/2010 00:3:09 34 45 45 56 ................  

ainsi de suite ... Actuellement, je suis en train de lire ces derniers avec le code:

[c,pathc]=uigetfile({'*.txt'},'Select the data','C:\Data');  
file=[pathc c];  
data= dlmread(file, ',', 1,3);  

donc inutile de dire que je suis sautais les horodateurs.

Je me demandais s'il y avait un moyen facile de lire les horodatages et tracer mes autres colonnes contre le temps en heures.

mes fichiers sont 43200 X 30 et certains sont 86400 X 90

question connexe: est le même format pour les fichiers .csv et .xls, je veux dire, sauf bien sûr xlsread

Répondre

1

J'ai déjà répondu à votre question sur les mêmes données ici: skip reading headers in MATLAB

[c,pathc]=uigetfile({'*.txt'},'Select the data','C:\Data'); 
file=[pathc c]; 
A = importdata(file, ' ', 1); 
dt = datenum(A.textdata(2:end,1),'mm/dd/yyyy'); 
tm = datenum(A.textdata(2:end,2),'HH:MM:SS'); 
tm = dt+tm-datenum('0:0','HH:MM'); %# combine date and time and correct for zero time. 
data = A.data; 

Vous pouvez tracer vos données contre tm et utiliser DATETICK fonction pour afficher la date dans tous les formats.

plot(tm,data) 
datetick('x','HH') 
xlabel('Time, hours') 

EDIT

Vous pouvez également utiliser Jonas's solution pour la question précédente pour lire les données. Puis faites comme ci-dessus:

dt = datenum(dateAndTimeCell(:,1),'mm/dd/yyyy'); 
tm = datenum(dateAndTimeCell(:,2),'HH:MM:SS'); 
tm = dt+tm-datenum('0:0','HH:MM'); 

plot(tm,dataArray,'o-') 
datetick('x','HH') 
xlabel('Time, hours') 
+0

Je reçois beaucoup d'erreur et je ne les comprends pas ??? Erreur lors de l'utilisation de ==> dlmread à 145 Incompatibilité entre le fichier et la chaîne de format. Numéro de lecture Problème de fichier (ligne 1, champ 5) ==>: 00: 0 erreur dans ==> dlmread à 90 dlmread result = (filename, délimiteur, r, 0); Erreur dans ==> testwith_timestamps à 45 data = dlmread (fichier, ',', 1); ??? Erreur lors de l'utilisation de ==> importdata à 199 Impossible de charger le fichier. – Paul

+0

Utilisez TEXTSCAN ou FREAD pour les formats plus complexes . Erreur dans ==> testwith_timestamps à 49 A = importdata (fichier, '', 1); Causé par: Erreur lors de l'utilisation de ==> vertcat Les dimensions des arguments CAT ne sont pas cohérentes. – Paul

+0

J'ai utilisé le même code que le vôtre après ma commande uiget moins le dlmread que j'ai utilisé comme le code ur importe les données – Paul

0

Je crois que sscanf fera l'affaire pour vous.