Change table variable data type
이전 댓글 표시
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?
채택된 답변
추가 답변 (2개)
Jeffrey Daniels
2020년 6월 4일
6 개 추천
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
yunyu Hu
2020년 11월 5일
This is a simple and clean solution.
Peter Perkins
2017년 7월 7일
0 개 추천
readtable also accepts a Format parameter that would allow you to override the automatic type detection.
댓글 수: 4
Nikhil Tawakley
2017년 8월 15일
Peter Perkins
2017년 8월 16일
I don't know what this means. Tables don't have formats.
Nikhil Tawakley
2017년 8월 29일
Walter Roberson
2017년 8월 29일
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) );
카테고리
도움말 센터 및 File Exchange에서 Tables에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!