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

 採用された回答

Star Strider
Star Strider 2021 年 4 月 7 日

1 投票

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 件のコメント

Souarv De
Souarv De 2021 年 4 月 7 日
Thanks @Star Strider. Its solved my purpose.
Star Strider
Star Strider 2021 年 4 月 7 日
As always, my pleasure!
Souarv De
Souarv De 2021 年 4 月 8 日
@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.
Stephen23
Stephen23 2021 年 4 月 8 日
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
Star Strider
Star Strider 2021 年 4 月 8 日
Stephen — Thank you!
Another option is to replace them with string variables:
names = {"A1" "B1" "C1" "D1" "E1"};
.
Souarv De
Souarv De 2021 年 4 月 8 日
編集済み: Souarv De 2021 年 4 月 8 日

サインインしてコメントする。

その他の回答 (1 件)

David Hill
David Hill 2021 年 4 月 7 日

0 投票

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

1 件のコメント

Souarv De
Souarv De 2021 年 4 月 7 日
@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.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeData Types についてさらに検索

製品

リリース

R2018a

タグ

質問済み:

2021 年 4 月 7 日

編集済み:

2021 年 4 月 8 日

Community Treasure Hunt

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

Start Hunting!

Translated by