Convert multiple strings in a table to numbers
84 views (last 30 days)
Show older comments
I'm trying to convert multiple strings in a table to numbers, but I keep on getting an error (either 'NaN' as an answer, or "Right hand side of an assignment into a table must be another table or a cell array").
It's a table where columns 13:68 contain either a "number" or "" (empty cell), and I want the string numbers to be converted to a number, and the empty cells to a NaN.
It works if I try this for one column only, using:
Table.X = str2double(Table.X);
But I have to do this for 56 columns and there must be a way to do it quicker than for each of them separately, however trying:
Table.(: ,X:YY) = str2double(Table.(: ,X:YY));
doesn't seem to work, as it returns an error, and changing the () to {} returns a NaN.
Anybody that knows how I can easily change string to double for multiple columns in a table?
0 Comments
Accepted Answer
Stephen23
on 12 Jan 2023
T = cell2table({"cat","1.2","","3.4";"in","4.5","6","7";"hat","","89",""})
T = convertvars(T,2:4,'double')
More Answers (0)
See Also
Categories
Find more on Cell Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!