Load file and remove string characters.

25 次查看(过去 30 天)
Hello,
I would like to extract all the numeric data out of a mixed file where the total line length needs to be determined. I have put a screenshot of the first 5 lines of the file.
In the file, I wish to extract the 13 numeric values and ignore the '#' at the end. I have tried to do this below:
fid = fopen('Boundary.cli');
FC = textscan(fid, '%d %d %d %d %d %d %d %d %d %d %d %d %d',1);
fclose(fid);
This produces the following 1x13 cell:
The issue is that i would like to the read the whole of the file and then convert the cell to a double array of n x 13. Where n is the number of lines of the file.
I would greatly appreciate any help from anyone who knows how to solve this issue.

采纳的回答

Jan
Jan 2017-11-28
编辑:Jan 2017-11-28
What about:
FC = textscan(fid, '%d %d %d %d %d %d %d %d %d %d %d %d %d %s');
Then remove the last column in FC. Or:
FC = textscan(fid, '%d %d %d %d %d %d %d %d %d %d %d %d %d %[^\n]');
  2 个评论
Stephen23
Stephen23 2017-11-28
@apex116: read the textscan documentation and use the CollectOutput option.
apex116
apex116 2017-11-28
Dear Stephen, Thank your help. However I am having difficulties with the second suggestion:
FC = textscan(fid, '%d %d %d %d %d %d %d %d %d %d %d %d %d %[^\n]');
The problem is that it doesn't allow me to read more than the first line.
The only reason I am asking as i might have a varying number of string characters following the numeric data.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Import and Export 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by