String to number from array
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Nicle Davidson
am 23 Sep. 2021
Kommentiert: Nicle Davidson
am 23 Sep. 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)
0 Kommentare
Akzeptierte Antwort
Konrad
am 23 Sep. 2021
Bearbeitet: Konrad
am 23 Sep. 2021
Hi Nicle
double() gives you the UTF(?) code corresponding to the input string. Eg:
double('a') % = 97 or
double('1') % = 49
Conversely:
char([97 49]) % = 'a1'
But:
str2double('1') % = 1
Also str2double() works on cellstrings, no need to for cell2mat():
str2double({'1' '2'}) % = 1 2
Best, Konrad
3 Kommentare
Konrad
am 23 Sep. 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.
Weitere Antworten (1)
Chunru
am 23 Sep. 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
% Read the .txt file
b = readmatrix('test.txt')
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!