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

13 Ansichten (letzte 30 Tage)
Benson Gou
Benson Gou am 17 Sep. 2020
Kommentiert: Star Strider am 17 Sep. 2020
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←↵'
...

Akzeptierte Antwort

Star Strider
Star Strider am 17 Sep. 2020
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 Kommentare
Benson Gou
Benson Gou am 17 Sep. 2020
Bearbeitet: Benson Gou am 17 Sep. 2020
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
Star Strider
Star Strider am 17 Sep. 2020
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by