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

2 次查看(过去 30 天)
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 个评论
Jessica Jiaying
Jessica Jiaying 2021-8-7
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.

请先登录,再进行评论。

采纳的回答

Yazan
Yazan 2021-8-8
编辑:Yazan 2021-8-8
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' }

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by