Clear Filters
Clear Filters

issue regarding reading .txt file with comments

12 views (last 30 days)
Hello, I am trying to load a 'txt' file and plot it. It has just 2 columns and multiple rows. I also have few rows which have comments which i can not remove. But when i load the file and plot it. it just plot the data till the row which has the 1st comment. After that it is not acknowledging or reflecting the data. What can be done for this? Please help me out. I am using 2018 version Thanks in advance.
  3 Comments
KSSV
KSSV on 1 Aug 2018
A snippet of file or attaching the file will help us to help you.
Akshat Shrivastava
Akshat Shrivastava on 1 Aug 2018
I am adding a screenshot of the code. As you can see, on row 7 and 24 i have added a comment. but the program is only running till row 6 and not after that. can you help with a code which will run all the rows (including the comment)

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 1 Aug 2018
Edited: Adam Danz on 1 Aug 2018
If you are using textscan() to read in the data, you can use the 'CommentStyle' property which will ignore any text on a single line following the comment character ('#').
A simple example
fid = fopen('test1.txt');
C = textscan(fid, %f, 1, 'CommentStyle', '#');
fclose(fid);
  1 Comment
Walter Roberson
Walter Roberson on 1 Aug 2018
You would probably want
C = cell2mat( textscan(fid, '%f%f', 'CommentStyle', '#', 'CollectOutput', true) );

Sign in to comment.

More Answers (1)

Stephen23
Stephen23 on 2 Aug 2018
Edited: Stephen23 on 3 Aug 2018
More robust:
opt = {'CommentStyle','#', 'CollectOutput',true};
[fid,msg] = fopen('yourfile.txt','rt');
assert(fid>=3,msg)
C = textscan(fid, '%f%f', opt{:});
fclose(fid);
M = C{1};
Or use dlmread.
  6 Comments
Stephen23
Stephen23 on 3 Aug 2018
Edited: Stephen23 on 3 Aug 2018
Akshat Shrivastava: please upload your data file. I cannot load a screenshot as data.
Possibly you just need to add 'MultipleDelimsAsOne' to the options cell array, but without your actual data file this is impossible for me to test.
Or you might be able to trivially use dlmread. This would be easy to check if I had your data file.
Walter Roberson
Walter Roberson on 3 Aug 2018
In particular we need to verify whether the file is tab delimited or simple space delimited or is fixed width fields.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!