read empty line by textscan
Ältere Kommentare anzeigen
Hi Everyone,
I am trying to organize a txt file with 12000 lines, which is too large to use readtable. And i choose to use textscan.
But the problem is textscan just skip all the empty lines, but i need to the exact lines number of certain element in the original file.
I searched a lot online but didn't help. i tried code like this to delete all whitespace but doesn't help.
default = textscan(fid,'%s%s','Delimiter','=','whitespace', '')
Thank you for your help!
2 Kommentare
Rik
am 11 Apr. 2019
Did you try either suggested solution? If you still have issues, we'll be happy to help.
Jeremy Hughes
am 11 Apr. 2019
I know someone has already added a solution, and it's a fine solution for what you're doing. But I'm surprised that READTABLE has a problem. Can you attach a sample?
12,000 lines isn't all that large especially if there are only two columns.
If you have 19a, you might also try:
M = readmatrix(filename,'OutputType','string','Delimiter','=','Whitespace','')
Akzeptierte Antwort
Weitere Antworten (1)
Bob Thompson
am 10 Apr. 2019
Bearbeitet: Rik
am 10 Apr. 2019
I'm going to guess that the extra lines are not consistent?
Generally, I would suggest reading the entire file in as one string, then splitting it at the new line characters. The exact coding may be a bit off from the below example, but it should put you on the right track.
default = textscan(fid,'%s'); % Read the file as one block
default = regexp(default,'\n','split'); % Split the string into multiple cells at each new line character
3 Kommentare
Rik
am 10 Apr. 2019
I suspect you mean regexp instead of repmat.
Bob Thompson
am 10 Apr. 2019
Yes, I do. Thank you for catching that, I was using repmat for other things recently.
zhiwen wan
am 11 Apr. 2019
Kategorien
Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!