converting categorical array to cell array

158 views (last 30 days)
Hi all, I am trying to convert a categorical array to a cell array so that I can use the strrep function, but i cant seem to find anyway to do it after scouring the web to the best of my abilities. My categorical column contains string that have the '_' character and i want to search the column and replace any string that has '_' with '-'. Is there any way I can do it without converting the datatype? Any help would be greatly appreciated. Thank you

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 8 Apr 2016
a=nominal({'R_','G_','B_'});
b=cellstr(a);
c=strrep(b,'_','-');
d=nominal(c)
d =
R- G- B-
  2 Comments
Boy
Boy on 8 Apr 2016
Moved: Fangjun Jiang on 8 Jan 2024
Thank you for the quick response Fangjun. But i have a dataset where column 3 is nominal datatype. Can i change the entire column from nominal to cell array? Thank You
Salma Hassan
Salma Hassan on 24 Dec 2017
Moved: Fangjun Jiang on 8 Jan 2024
C = cellstr(A) check this link https://www.mathworks.com/help/matlab/ref/cellstr.html

Sign in to comment.

More Answers (1)

cui,xingxing
cui,xingxing on 6 Jan 2024
Edited: cui,xingxing on 27 Apr 2024 at 2:05
@Fangjun Jiang update new workflow.
a=categorical({'R_','G_','B_'});
b=string(a);
c=replace(b,'_','-');
d=categorical(c)
d = 1×3 categorical array
R- G- B-
BTW, Convert categorical array to cell array in general way Example.
A = categorical(["A","B","C","D","hello","world"]) % categorical array
A = 1×6 categorical array
A B C D hello world
dst = num2cell(A) % cell array
dst = 1×6 cell array
{[A]} {[B]} {[C]} {[D]} {[hello]} {[world]}
if A is a complex arrays,also can use mat2cell function.
A = categorical(["A","B","Hello","world .";
"1","2","3","四"])
A = 2×4 categorical array
A B Hello world . 1 2 3 四
dst = mat2cell(A,[1,1],[2,1,1])
dst = 2×3 cell array
{[A B]} {[Hello]} {[world .]} {[1 2]} {[3 ]} {[四 ]}
-------------------------Off-topic interlude, 2024-------------------------------
I am currently looking for a job in the field of CV algorithm development, based in Shenzhen, Guangdong, China,or a remote support position. I would be very grateful if anyone is willing to offer me a job or make a recommendation. My preliminary resume can be found at: https://cuixing158.github.io/about/ . Thank you!
Email: cuixingxing150@gmail.com

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!