Convert multiple strings in a table to numbers

79 次查看(过去 30 天)
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?

采纳的回答

Stephen23
Stephen23 2023-1-12
T = cell2table({"cat","1.2","","3.4";"in","4.5","6","7";"hat","","89",""})
T = 3×4 table
Var1 Var2 Var3 Var4 _____ _____ ____ _____ "cat" "1.2" "" "3.4" "in" "4.5" "6" "7" "hat" "" "89" ""
T = convertvars(T,2:4,'double')
T = 3×4 table
Var1 Var2 Var3 Var4 _____ ____ ____ ____ "cat" 1.2 NaN 3.4 "in" 4.5 6 7 "hat" NaN 89 NaN

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Cell Arrays 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by