Split column data into two columns

7 vues (au cours des 30 derniers jours)
Kellie Anton
Kellie Anton le 2 Août 2017
Commenté : Honglei Chen le 3 Août 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 commentaire
Kellie Anton
Kellie Anton le 3 Août 2017
Modifié(e) : Kellie Anton le 3 Août 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.

Connectez-vous pour commenter.

Réponses (1)

Honglei Chen
Honglei Chen le 2 Août 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 commentaires
Kellie Anton
Kellie Anton le 3 Août 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 le 3 Août 2017
maybe you can try
glop = goop{1}(:,1:2)
HTH

Connectez-vous pour commenter.

Catégories

En savoir plus sur Resizing and Reshaping Matrices 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!

Translated by