Split column data into two columns

2 visualizaciones (últimos 30 días)
Kellie Anton
Kellie Anton el 2 de Ag. de 2017
Comentada: Honglei Chen el 3 de Ag. de 2017
I have a column of data with numbers formatted as a string. All of the 3,000 plus entries are five characters long such as 01234. I would like to split that out into two columns so that one column would be the first two numbers and the other the last three, such as 01 234. I cannot seem to find the right solution for this. Any thoughts?
  1 comentario
Kellie Anton
Kellie Anton el 3 de Ag. de 2017
Editada: Kellie Anton el 3 de Ag. de 2017
I finally got something to work. I had to take my column out into its own cell array 'goop'.
glop = cellfun(@(x) x(1:2), goop, 'UniformOutput', false);
glup = cellfun(@(x) x(3:end), goop, 'UniformOutput', false);
Honestly, I do not understand why it would not let me do it in the table directly. Instead, it just gives me a column of 2X1 cells.
Anyhow, this will work for my purposes. I just was hoping for something more... efficient.

Iniciar sesión para comentar.

Respuestas (1)

Honglei Chen
Honglei Chen el 2 de Ag. de 2017
Could you elaborate what you have as a matrix?
If you are using character arrays, it should just be a 5-column matrix to start with. So all you need to do is just getting the first 2 columns and then last 3 columns. For example
a = ['01234';'12345']
a(:,1:2)
a(:,3:5)
Does this help?
  3 comentarios
Kellie Anton
Kellie Anton el 3 de Ag. de 2017
Here is what I tried this morning...
glop = goop(:,1:2);
Index exceeds matrix dimensions.
goop is a 3283X1 cell.
Honglei Chen
Honglei Chen el 3 de Ag. de 2017
maybe you can try
glop = goop{1}(:,1:2)
HTH

Iniciar sesión para comentar.

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by