Convert a Matrix column to date
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a matrix 5556x2 double which both columns are read as numbers. I want to convert to first column to be read as dates. the format is yyyyMMdd as in, 20010130. My code for a loop is here that works but in the final product I want the entire first column to be read as dates rather than numbers so when I plot the two columns the X axis is understandable.
len2 = 0;
for i = 1:16
year = i+2001;
filename =['CRND0103-',sprintf('%4.4d',year),'-AK_Barrow_4_ENE.txt'];
formatSpec = '%*5s%9f%*7*s%*8*s%*8*s%*8*s%*8f%8f%[^\n\r]';
fileID = fopen(filename,'r');
dataArray = textscan(fileID, formatSpec, 'Delimiter', '', 'WhiteSpace', '', 'TextType', 'string', 'ReturnOnError', false);
fclose(fileID);
bar = [dataArray{1:end-1}];
len1 = length(bar);
barrow(len2+1:len1+len2,:)= bar(:,:);
len2 = length(barrow);
end;
barrow(barrow == - 9999) = NaN;
1 commentaire
Rik
le 15 Nov 2017
If you use datenum as x values, the xticks should automatically show dates. Is that what you are looking for? I'm a little confused about how your text relates to the code.
Réponse acceptée
KL
le 15 Nov 2017
Try something like this,
dt = [20110130; 20110131; 20110201]; %your column
d = datetime(num2str(dt),'InputFormat','yyyyMMdd')
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Dates and Time dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!