load function: how do you to skip lines in ASCII File that generate errors?

6 views (last 30 days)
I am using the load function to load data from an ASCII file filled with numeric data.
when running the load function, as in:
loaded_data=load(strcat(pat,'/',filename),' ');
If there is a line that has non-numeric values in it, the load function will not load the file.
for example, I will get an error like:
Unknown text on line number 468 of ASCII file /path/to/file/data_2022_09_18.dat
where the string of *'s is in line 468 and creating the error.
Is there a way that I can load the file, and skip over lines which generate this error?
  1 Comment
Stephen23 on 24 Sep 2022
Edited: Stephen23 on 24 Sep 2022
Use READMATRIX and the options TreatAsMissing, TrimNonNumeric, etc. to ignore those characters.
Use READTABLE and the options TreatAsMissing, MissingRule, etc. to ignore those rows.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 24 Sep 2022
No. load() of a text file is documented as only being guaranteed to work for files saved with save -ascii
In practice load() of a text file will ignore lines whose first character is % but it is not able to ignore other forms of comments. You will need to switch to using a different way of loading text.
You might consider textscan with a 'CommentStyle' option.




Community Treasure Hunt

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

Start Hunting!