How to split a column in a table into two columns by a space

13 visualizaciones (últimos 30 días)
JFz
JFz el 4 de Mzo. de 2016
Comentada: JFz el 7 de Mzo. de 2016
I have a table of 4 columns. One column is datetime, '2016-02-01 20:48:58.0000000' I would like to split the date and time into two columns. How to do that? Thanks!
Jennifer

Respuesta aceptada

Image Analyst
Image Analyst el 4 de Mzo. de 2016
Here's one way:
% Create table.
for k = 1 : 3
ca{k} = datestr(now)
pause(1.1)
end
% Create table with two columns, initialized to the same for now.
t = table(ca', ca')
% NOW START:
% Split column #1 into columns 1 and 2.
for k = 1 : size(t, 1)
thisString = cell2mat(t{k,1});
t{k, 1} = {thisString(1:11)};
t{k, 2} = {thisString(13:end)};
end
% Show new t in command window.
t
  1 comentario
JFz
JFz el 7 de Mzo. de 2016
Thanks. It works! But now, my table has thousands of rows. Is there a way to make a varfun or something similar to split that column to make it run fast?

Iniciar sesión para comentar.

Más respuestas (2)

Ahmet Cecen
Ahmet Cecen el 4 de Mzo. de 2016

Peter Perkins
Peter Perkins el 7 de Mzo. de 2016
If the variable in your table is literally a datetime, and not a cellstr containing datestrs, then you'll want to split them uing timeofday to get the time part, and dateshift to get the date part.
  1 comentario
JFz
JFz el 7 de Mzo. de 2016
Thanks! I will try that. In the mean time, is there anyway to avoid the for loop, such as something like varfun to make it run in a blast?

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by