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!