How to use textscan with empty char fields
Show older comments
How can I use textscan with files that include these kind of lines, with empty chars?
m1 = 'HELLO,42.53,A,B,1,C'; % Only this works fine
m2 = 'HELLO,42.53,A,,1,C';
m3 = 'HELLO,42.53,A,B,1,';
m4 = 'HELLO,42.53,,,1,C';
pattern = 'HELLO%f%c%c%f%c';
delimiter = ',';
[C1, pos1] = textscan(m1, pattern, 'Delimiter', delimiter)
[C2, pos2] = textscan(m2, pattern, 'Delimiter', delimiter)
[C3, pos3] = textscan(m3, pattern, 'Delimiter', delimiter)
[C4, pos4] = textscan(m4, pattern, 'Delimiter', delimiter)
1 Comment
Since this doesn't answer the question, How can I use textscan ..., I'll leave a comment rather than an answer.
A workaround is to use strsplit and then some post-processing to convert chars to numbers.
m1 = 'HELLO,42.53,A,B,1,C';
m2 = 'HELLO,42.53,A,,1,C';
m3 = 'HELLO,42.53,A,B,1,';
m4 = 'HELLO,42.53,,,1,C';
cleanStrFcn = @(s)[str2double(s{2}),s(3:end)];
s1 = cleanStrFcn(strsplit(m1,',','CollapseDelimiters',false))
s2 = cleanStrFcn(strsplit(m2,',','CollapseDelimiters',false))
s3 = cleanStrFcn(strsplit(m3,',','CollapseDelimiters',false))
s4 = cleanStrFcn(strsplit(m4,',','CollapseDelimiters',false))
Accepted Answer
More Answers (0)
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!