String to number from array
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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)
0 Commenti
Risposta accettata
Konrad
il 23 Set 2021
Modificato: Konrad
il 23 Set 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 Commenti
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.
Più risposte (1)
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
% Read the .txt file
b = readmatrix('test.txt')
0 Commenti
Vedere anche
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!