How to read a list of strings in a txt file?

9 次查看(过去 30 天)
Dear All,
I need to read a txt file which contains a list of names with different lengths. Here is my txt file:
mynames:
OAKFIELD
5556_T
ROLLINS
......
I need to read those names to store them in a string array MyNames. MyNames should be like below:
MyNames = [
'OAKFIELD'
'5556_T'
'ROLLINS'
......
];
Here is my code:
fid = fopen(FileName, 'r');
if fid < 0, error('Cannot open file'); end
while KKK < 30000 % Infinite loop
s = fgets(fid);
if ischar(s)
MyNames = [MyNames; s];
else % End of file:
break;
end
end
But what I got is Not correct. MyNames is an array having 10 coulmns and shows as
'CHSTRSVC←↵'
'5556_T'←↵'
'ROLLINS←↵'
...

采纳的回答

Star Strider
Star Strider 2020-9-17
Unless I am missing something, ‘KKK’ is never incremented inside the while loop, so it will in fact be infinite.
If you are actually using ‘KKK’ as a counter (and therefore incrementing it), this could work:
MyNames{KKK} = s;
That creates a cell array, and while that can create additional steps required to recover its contents later, it could be an effective approach.
A better approach could be readtable. The first variable would be the names, and you could simply ignore the others.
.
  4 个评论
Benson Gou
Benson Gou 2020-9-17
编辑:Benson Gou 2020-9-17
I used data = sscanf(s, '%s %s'), and got the right cell array MyNames:
{'OAKFIELD'} {'OAKFIELD'} {'5556_T'} {'ROLLINS'} {'ROLLINS'} {'STETSON'} ...
Thanks a lot for all of you.
Benson

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 String Parsing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by