How to convert strings in a table to numbers?
18 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Matthew Gordon
il 10 Nov 2017
Commentato: Matthew Gordon
il 11 Nov 2017
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 Commenti
Risposta accettata
Walter Roberson
il 11 Nov 2017
Modificato: Walter Roberson
il 11 Nov 2017
It might help to specify the TreatAsEmpty option to readtable, and perhaps the Format option as well.
0 Commenti
Più risposte (1)
Jan
il 11 Nov 2017
A simplification of your code omitting unnecessary steps:
for i=1:40
bk13.(i) = str2double(bk13{:,i});
end
Vedere anche
Categorie
Scopri di più su String 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!