Datenum Problem
Mostrar comentarios más antiguos
Hi everyone!
I am loading a .txt file into matlab in the following way:
fid = fopen('data.txt');
data = textscan(fid,'%s %s %*f %*s %*f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %*[^\n]','HeaderLines',2,'Delimiter','\b\t','EndofLine','\r');
%disp(data{1});
fclose(fid);
%GET DATE AND TIME
dateandtime=data{1}(:);
%CONVERT DATETIME TO NUMERIC VALUE
datetimenumber=datenum([dateandtime{:}],'dd.mm.yy HH:MM:SS');
But when I load it like this, matlab brings the data set as cell arrays like this: EDU>> whos data Name Size Bytes Class Attributes
data 1x42 15544862 cell
So when I try to create a numeric value for the date and time (which has a format 'dd.mm.yy HH:MM:SS') matlab creates this variable:
EDU>> whos datetimenumber Name Size Bytes Class Attributes
datetimenumber 1x1 8 double
but this is wrong because my dateandtime cell array has a 31591x1 size, so the datenum should also create a 31591x1 numeric dates and times.
EDU>> whos dateandtime Name Size Bytes Class Attributes
dateandtime 31591x1 3032702 cell
I would really appreciate any hints of how can I fix this and create numeric dates and times for my dateandtime cell.
Have a nice week!
Lourdes
Respuesta aceptada
Más respuestas (1)
Andrei Bobrov
el 15 de Mayo de 2011
so?
fid = fopen('data.txt');
t = textscan(fid,'%s','Delimiter','BASF');
fid =fclose(fid);
t = t{:};
t = reshape(strtrim(t(cellfun(@(x)~isempty(x),t)))',2,[])';
out = [datenum(t(:,1),'dd.mm.yy HH:MM:SS') str2num(char(t(:,2)))]
1 comentario
Lu
el 15 de Mayo de 2011
Categorías
Más información sobre Dates and Time en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!