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

15 vues (au cours des 30 derniers jours)
Benson Gou
Benson Gou le 17 Sep 2020
Commenté : Star Strider le 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←↵'
...

Réponse acceptée

Star Strider
Star Strider le 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 commentaires
Benson Gou
Benson Gou le 17 Sep 2020
Modifié(e) : Benson Gou le 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 le 17 Sep 2020
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by