Reading large data set from text file & separating to individual column

1 view (last 30 days)
Hello, I have a text file in foll. format:
1950/05/21 04:00:00 1.7100 1 1
1950/05/21 05:00:00 1.5500 1 1
1950/05/21 06:00:00 1.4000 1 1
1950/05/21 07:00:00 1.2200 1 1
I need to separate it to individual column elements. The desired output is as below:
1950 05 21 04 1.71 1 1
1950 05 21 05 1.55 1 1
1950 05 21 06 1.40 1 1
1950 05 21 07 1.22 1 1
Please suggest codes for this. Thanks

Accepted Answer

José-Luis
José-Luis on 11 Aug 2017
Edited: José-Luis on 11 Aug 2017
Read in your data and then:
dummy = '1950/05/21 04:00:00 1.7100 1 1';
result = regexprep(dummy,'[\s/:]+',' ')
If you just want to edit a text file like that, there probably are better tools than Matlab for that. grep, for instance.

More Answers (2)

KSSV
KSSV on 11 Aug 2017
T = readtable('data.txt') ;
T = table2cell(T) ;
dt = strcat(T(:,1), '/',T(:,2)) ;
T = [dt T(:,3:end)] ;
iwant = [datevec(T(:,1)) cell2mat(T(:,2)) cell2mat(T(:,3)) cell2mat(T(:,4))]

Andrei Bobrov
Andrei Bobrov on 11 Aug 2017
T = readtable('doc.txt')
[a,b,c,d] = datevec(datetime(strcat(T{:,1},{' '},T{:,2}),'I','yyyy/MM/dd HH:mm:ss'));
out = [a,b,c,d,T{:,3:5}]

Community Treasure Hunt

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

Start Hunting!