String to number from array
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Konrad
2021-9-23
编辑:Konrad
2021-9-23
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 个评论
Konrad
2021-9-23
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.
更多回答(1 个)
Chunru
2021-9-23
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!