Azzera filtri
Azzera filtri

Loading a text file with strings and numbers

5 visualizzazioni (ultimi 30 giorni)
Adam Bosco
Adam Bosco il 13 Gen 2020
Modificato: Adam Danz il 25 Feb 2020
I am trying to load in a txt file that has strings and numbers. The attached text file is organized with 1 column and 5 rows containing “a 2 t 1.5 n”. The only number is “1.5” with the rest being strings.
I need the code to store each item as a separate variable. For example variable 1 = a, variable 2 = 2, variable 3 = t ect.
Any help would be greatly appreciated.

Risposte (1)

Adam Danz
Adam Danz il 13 Gen 2020
Modificato: Adam Danz il 13 Gen 2020
"The only number is “1.5”..."
I see a 2 in there, too.
"I need the code to store each item as a separate variable."
That would require dynamic variable naming which is a bad practice that results in additional problems. See https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval
A better solution it to store the values in a cell array that you can reference by indexing.
The first line reads in the text file as a cell array of character vectors.
The second line converts any character vectors that are numeric to numeric values.
c = strsplit(fileread('Test.txt')).';
c(~isnan(cellfun(@str2double,c))) = num2cell(str2double(c(~isnan(cellfun(@str2double,c)))));
Now you can access the n-th value by indexing
c{n}
  4 Commenti
Adam Bosco
Adam Bosco il 13 Gen 2020
Yep this solved my problem. Thanks!
Adam Danz
Adam Danz il 13 Gen 2020
Modificato: Adam Danz il 25 Feb 2020
Glad I could help.

Accedi per commentare.

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by