Borrar filtros
Borrar filtros

Extracting the year from a timestamp in a column

1 visualización (últimos 30 días)
Glowworm8
Glowworm8 el 12 de Jun. de 2018
Comentada: Peter Perkins el 5 de Jul. de 2018
I have a set of 477 values in a column, each that are formatted 'yyyy-mm-dd HH:MM:SS' and am trying to extract only the year using a loop
for i=1:477
[t] = datevec(data{i,8},'yyyy-mm-dd HH:MM:SS');
't_years' = t.Year;
end

Respuesta aceptada

Stephen23
Stephen23 el 12 de Jun. de 2018
Editada: Stephen23 el 12 de Jun. de 2018
Your code confuses a date vector (which is a simple double matrix of size Nx6 or Nx3) with a datetime object (which has the property obj.Year). If you want to use that property then you will need to use a datetime object. If you want to use datvec, then you do not need a loop as it accepts a cell array of char vectors directly. So probably something like this will work (it depends on how the data is arranged in data):
mat = datevec(data(:,8),'yyyy-mm-dd HH:MM:SS');
year = mat(:,1);
  2 comentarios
Glowworm8
Glowworm8 el 12 de Jun. de 2018
Thank you!
Peter Perkins
Peter Perkins el 5 de Jul. de 2018
And if you want to stick with datetimes (which you probably do),
d = datetime(data{i,8},'yyyy-MM-dd HH:mm:ss');
y = d.Year

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by