How to add numeric values to cell array?

names = {'A' 'B' 'C' 'D' 'E'};
val = [0;1.5;0.5;0.5;1.5]
I want my output as folows
A 0
B 1.5
C 0.5
D 0.5
E 1.5

 Accepted Answer

Try this:
names = {'A' 'B' 'C' 'D' 'E'};
val = [0;1.5;0.5;0.5;1.5];
C = {[names{:}].' val}
C1 = C{:,1}
C2 = C{:,2}
TC = table(C1,C2)
.

6 Comments

Thanks @Star Strider. Its solved my purpose.
As always, my pleasure!
@Star Strider I found an a auxiliary problem with your code is that if names is replaced by as follows
names = {'A1' 'B1' 'C1' 'D1' 'E1'}
Then, the code encounters some errors. Please help.
names = {'A1';'B1';'C1';'D1';'E1'}; % note the orientation!
val = [0;1.5;0.5;0.5;1.5];
T = table(names,val)
T = 5×2 table
names val ______ ___ {'A1'} 0 {'B1'} 1.5 {'C1'} 0.5 {'D1'} 0.5 {'E1'} 1.5
Stephen — Thank you!
Another option is to replace them with string variables:
names = {"A1" "B1" "C1" "D1" "E1"};
.
Souarv De
Souarv De on 8 Apr 2021
Edited: Souarv De on 8 Apr 2021

Sign in to comment.

More Answers (1)

for k=1:length(names)
names{k}=[names{k},' ',num2str(val(k))];
end

1 Comment

@David Hill It is ok but in your code the output becomes again a cell type and both values are merged together as individual enitity of cell.

Sign in to comment.

Categories

Products

Release

R2018a

Asked:

on 7 Apr 2021

Edited:

on 8 Apr 2021

Community Treasure Hunt

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

Start Hunting!