String to number from array

3 visualizzazioni (ultimi 30 giorni)
Nicle Davidson
Nicle Davidson il 23 Set 2021
Commentato: Nicle Davidson il 23 Set 2021
I have a file test.txt which I am reading the content from
the content is such as:
290729 123456
13984 654321
13272 111111
I have it until here:
inn = fgetl(thelist);
while ischar(inn)
disp(inn)
x = strsplit(inn);%I separate the to values in each line
toNum=x(1,1); %want to get first value and convert it to a number
theNum =double(cell2mat(toNum));%this does not work to convert {'290729'} to a number
class(theNum);%trying to find out what is the type after I tried to make a number out of it
inn = fgetl(thelist);
end
I need to convert this value (such as 290729 or 13984 in this case to a number)

Risposta accettata

Konrad
Konrad il 23 Set 2021
Modificato: Konrad il 23 Set 2021
Hi Nicle
you need str2double() (or str2num()), not double().
double() gives you the UTF(?) code corresponding to the input string. Eg:
double('a') % = 97 or
ans = 97
double('1') % = 49
ans = 49
Conversely:
char([97 49]) % = 'a1'
ans = 'a1'
But:
str2double('1') % = 1
ans = 1
Also str2double() works on cellstrings, no need to for cell2mat():
str2double({'1' '2'}) % = 1 2
ans = 1×2
1 2
Best, Konrad
  3 Commenti
Konrad
Konrad il 23 Set 2021
Then you allready converted the string to a number (note that for str2num() the input cannot be a cellstring).
Also consider Chunrus answer if your text file exclusively contains numbers as indicated in your question and if you don't need to read the file line-by-line. Then simply using load(filename,'-ascii') might also be a solution.
Nicle Davidson
Nicle Davidson il 23 Set 2021
Yes, and thank you for both answers! It helped

Accedi per commentare.

Più risposte (1)

Chunru
Chunru il 23 Set 2021
You can use "readmatrix" function:
% Generate the data file
a = [290729 123456
13984 654321
13272 111111];
writematrix(a, 'test.txt', 'Delimiter', ' ')
type test.txt
290729 123456 13984 654321 13272 111111
% Read the .txt file
b = readmatrix('test.txt')
b = 3×2
290729 123456 13984 654321 13272 111111

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by