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!