Change table variable data type
370 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nikhil Tawakley
el 7 de Jul. de 2017
Comentada: yunyu Hu
el 5 de Nov. de 2020
I used readtable() to read a text file into a table. One of the columns of the table was read (by default) as a double rather than a string. How does one change a columns datatype within a table?
0 comentarios
Respuesta aceptada
Sean de Wolski
el 7 de Jul. de 2017
Change it before reading it in by modifying the options passed to readtable.
Or
t.Var1 = num2str(t.Var1)
2 comentarios
Peter Perkins
el 7 de Jul. de 2017
Without meaning to contradict Sean, num2str is almost certainly not what you want, at least not by itself. It is a very old function that creates a char matrix, which will likely be pretty awkward to work with. One possibility is to apply cellstr to that char matrix, another (if you're using a recent version of MATLAB) would be to convert using the string function (as in, string, the new class).
Más respuestas (2)
Jeffrey Daniels
el 4 de Jun. de 2020
fileName = table.xlsx;
opts = detectImportOptions(fileName);
opts.VariableTypes{15} = 'char'; % This will change column 15 from 'double' or whatever it is to 'char', which is what you want.
new_table = readtable(fileName,opts);
1 comentario
Peter Perkins
el 7 de Jul. de 2017
readtable also accepts a Format parameter that would allow you to override the automatic type detection.
4 comentarios
Walter Roberson
el 29 de Ag. de 2017
No, it is not possible to copy-paste datatypes. However, you could use
old_class = arrayfun(@class, OldTable.VariableName, 'Uniform', 0);
new_variable = arrayfun(@(value, newclass) cast(value, newclass), NewTable.VariableName, old_class, 'uniform', 0);
NewTable.VariableName = new_variable;
This assumes that each entry in the variable is a potentially different type -- which would not be the case for numeric entries for example. If you have numeric entries, then
NewTable.VariableName = cast( NewTable.VariableName, class(OldTable.VariableName) );
Ver también
Categorías
Más información sobre Tables en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!