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

 Risposta accettata

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 Commenti

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 il 8 Apr 2021
Modificato: Souarv De il 8 Apr 2021

Accedi per commentare.

Più risposte (1)

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

1 Commento

@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.

Accedi per commentare.

Categorie

Prodotti

Release

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by