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

 Akzeptierte Antwort

Star Strider
Star Strider am 7 Apr. 2021

1 Stimme

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 Kommentare

Souarv De
Souarv De am 7 Apr. 2021
Thanks @Star Strider. Its solved my purpose.
Star Strider
Star Strider am 7 Apr. 2021
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 am 8 Apr. 2021
Bearbeitet: Souarv De am 8 Apr. 2021

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

David Hill
David Hill am 7 Apr. 2021

0 Stimmen

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

1 Kommentar

Souarv De
Souarv De am 7 Apr. 2021
@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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by