How to convert strings in a table to numbers?
조회 수: 18 (최근 30일)
이전 댓글 표시
I have a large table (280,000 x 40) in which some of the columns are numeric but stored as strings, for example:
Block Lot District
'121' '35' '13'
'121' '36' '13'
'121' '37' '13'
Don't ask me why they are stored this way - the original data is in a .txt file. Is there either
- a) a way to import this file so that the numbers don't show up as strings (currently I'm using readtable) or
- b) a way to quickly convert all these entries into numbers. Right now I'm using the following code, which seems to work, but takes a long time:
for i=1:40
b1(:,i)=table2array(bk13(:,i));
b2(:,i)=str2double(b1(:,i));
b3(:,i)=array2table(b2(:,i));
bk13{:,i}=table2cell(b3(:,i));
end
댓글 수: 0
채택된 답변
Walter Roberson
2017년 11월 11일
편집: Walter Roberson
2017년 11월 11일
It might help to specify the TreatAsEmpty option to readtable, and perhaps the Format option as well.
댓글 수: 0
추가 답변 (1개)
Jan
2017년 11월 11일
A simplification of your code omitting unnecessary steps:
for i=1:40
bk13.(i) = str2double(bk13{:,i});
end
참고 항목
카테고리
Help Center 및 File Exchange에서 String에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!