Convert multiple strings in a table to numbers

65 visualizaciones (últimos 30 días)
YaaW
YaaW el 12 de En. de 2023
Comentada: YaaW el 12 de En. de 2023
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?

Respuesta aceptada

Stephen23
Stephen23 el 12 de En. de 2023
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

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by