How to concatenate string array to matrix?

I have a question regarding adding a string array to a matrix. i.e.
string array = {'A','B','C'}; B = eye(3); I want to concatenate those two in column, i.e. I want to get is eventually;
[1,0,0,A; 0,1,0,B; 0,0,1,C]
Thank you so much for your help in advance! Best,

Answers (1)

Adam
Adam on 1 Mar 2017
Edited: Adam on 1 Mar 2017
stringArray = {'A','B','C'};
B = eye(3);
result = [num2cell(B) stringArray'];
is the best you can do, resulting in a cell array.
[1,0,0,A; 0,1,0,B; 0,0,1,C]
is not a valid array in Matlab unless A, B and C are variables, but since you are talking about a cell array of chars I assume that is not the case.

4 Comments

Thank you Adam Do you know why only cell array allows to mix char/string with numbers? Please let me know if you happen to know. Best,
Adam
Adam on 1 Mar 2017
Edited: Adam on 1 Mar 2017
Because that is their purpose. All other arrays are uni-type (ish).
I see. Thank you so much for your help!
tables can also mix strings with numbers, but they are pretty much implemented as cell arrays.

Sign in to comment.

Categories

Asked:

on 1 Mar 2017

Commented:

on 2 Mar 2017

Community Treasure Hunt

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

Start Hunting!