Conversion of Categorical to char while maintaining same dimension

26 次查看(过去 30 天)
I have a variable having dimension m-by-3. It's datatype is categorical. I am trying to convert it to char datatype while maintaining the same dimension of m-by-3.
Can someone tell me how to convert a variable of categorical datatype of dimension m-by-3 to the char datatype of dimension m-by-3?

采纳的回答

Voss
Voss 2024-3-9
You cannot do that in general.
In the special case that all the categories are a single character long, then you can do it:
m = 4;
% creating a random m-by-3 categorical array
C = categorical(num2cell(char(64+randi(26,[m 3]))))
C = 4×3 categorical array
T Z H G X W P N R X Y Y
% converting C to an m-by-3 char
reshape(char(C),m,[])
ans = 4×3 char array
'TZH' 'GXW' 'PNR' 'XYY'
But if any of the categories is more than one character, that's not going to work because you have more than 3*m characters in total.
Instead, convert to a string array:
string(C) % m-by-3 string array
ans = 4×3 string array
"T" "Z" "H" "G" "X" "W" "P" "N" "R" "X" "Y" "Y"
Or a cell array of character vectors:
cellstr(C) % m-by-3 cell array
ans = 4×3 cell array
{'T'} {'Z'} {'H'} {'G'} {'X'} {'W'} {'P'} {'N'} {'R'} {'X'} {'Y'} {'Y'}

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by