How to split table cell into two columns based on data type?

1 vue (au cours des 30 derniers jours)
Jessica Jiaying
Jessica Jiaying le 7 Août 2021
Commenté : Jessica Jiaying le 9 Août 2021
I have imported my data using readtable so that it is currently like this:
I would like to further split the data in the two selected columns (Res1 and Res2) so that each row looks like this:
(Taking the first row as an example and each tab delimiting each column)
7.8610 8.3600 659 1318 H Y 23 H H 20
where "Y23" and "H20" are now split into "Y", "23", "H", "20" respectively in separate columns.
I will greatly appreciate any advice, thank you!
  1 commentaire
Jessica Jiaying
Jessica Jiaying le 7 Août 2021
To add on, the values for "Res1" and "Res2" are all a character followed by numbers (can be 1 or 2) with no spacing in between as this is an output derived from a program.

Connectez-vous pour commenter.

Réponse acceptée

Yazan
Yazan le 8 Août 2021
Modifié(e) : Yazan le 8 Août 2021
Below is an example with toy data showing what you need to do.
clc, clear,
T1 = [1;2]; T2 = {'Y12'; 'Y2'}; T3 = {'H12'; 'H0'};
T = table(T1, T2, T3);
% get letters and digits of column 2
T2Str = erase(T.T2, digitsPattern);
T2Dig = erase(T.T2, lettersPattern);
% get letters and digits of column 3
T3Str = erase(T.T3, digitsPattern);
T3Dig = erase(T.T3, lettersPattern);
% new table
Tnew = table(T1, T2Str, T2Dig, T3Str, T3Dig);
disp(T)
T1 T2 T3 __ _______ _______ 1 {'Y12'} {'H12'} 2 {'Y2' } {'H0' }
disp(Tnew)
T1 T2Str T2Dig T3Str T3Dig __ _____ ______ _____ ______ 1 {'Y'} {'12'} {'H'} {'12'} 2 {'Y'} {'2' } {'H'} {'0' }
  1 commentaire
Jessica Jiaying
Jessica Jiaying le 9 Août 2021
Thank you so much Yazan! Your example code allowed me to understand how to apply to my data perfectly.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by