Concatenate Cell Arrays (string and numeric)

175 views (last 30 days)
Jason
Jason on 13 Jul 2012
Hi all, I have two cell arrays: tempName & tempWeightSTR. 1. tempName was populated with strings. 2. tempWeightSTR started out as tempWeight which was numeric and I used num2cell to convert it to a cell array.
Is there a way to concatenate the two arrays so the resulting elements look like: ['Paul (20%)', 'John (24%)', 'Ringo (5%)']
I need my results to be one vector, i.e. ['A(1%)','B(2%)','C(3%)']... not [ 'A', 'B', 'C' '1%', '2%', '3%']
I tried strcat(tempName,' (', tempWeightSTR,')') but the numeric values do not show up for some reason.
Also, can someone please point me in the right direction to format the numeric values to string percentages (%)?
Thanks in advance! jason

Accepted Answer

Nirmal
Nirmal on 13 Jul 2012
Edited: Nirmal on 13 Jul 2012
a={'john','harry'};
b={'20','30'};
s='%'
for i=1:2
bb=cell2mat(b(1,i));
str=sprintf('(%s%s)',bb,s);
a(1,i)=strcat(a(1,i),str);
end
a
  2 Comments
Jason
Jason on 13 Jul 2012
I figured out #1 '%0.2f%s' = 3.30%
However, I'd still like to avoid using a loop. Thanks! jason

Sign in to comment.

More Answers (1)

Nirmal
Nirmal on 13 Jul 2012
a={'john','harry'};
b={'20','30'};
a=strcat(a,'(',b,'%)');

Community Treasure Hunt

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

Start Hunting!

Translated by