How to add commas after cell array strings

Hello,
I'm stuck with one problem for a few hours right now. I want to add commas after my cell array string. Right now it looks like:
a = {'a1','a2','a3','a4','a5','a6'}; a(:)'
ans =
'a1' 'a2' 'a3' 'a4' 'a5' 'a6'
But I need it to be like this:
'a1' , 'a2' , 'a3' , 'a4' , 'a5' , 'a6'
(No comma after last one). I tried a lot of ways, but it seems that I can't create my strings in cell array in form of 'a1', initially. strjoin and strcat doesn't seem to solve this problem as well. I'm kinda lost.

 采纳的回答

A cell array is by definition a Comma-Separated List. If you want it to appear in your Command Window as one with distinct commas, this works:
a = {'a1','a2','a3','a4','a5','a6'};
fprintf(1, 'a = ')
for k1 = 1:length(a)-1
fprintf(1, '%s , ', char(a(k1)'))
end
fprintf(1, '%s\n', char(a(end)))
a = a1 , a2 , a3 , a4 , a5 , a6

5 个评论

Thanks, but the problem with your answer is that it appears without uppercase quotes:
a = a1 , a2 , a3 , a4 , a5 , a6
While I need them exactly as:
'a1' , 'a2' , 'a3' , 'a4' , 'a5' , 'a6'
You can do this without using char().
a = {'a1','a2','a3','a4','a5','a6'};
fprintf(1, 'a = ')
for k1 = 1:length(a)-1
fprintf(1, '%s , ', a{k1})
end
fprintf(1, '%s\n', a{end})
Incorporating Kirby’s Comment (thank you!) this will give you the quotes as well:
a = {'a1','a2','a3','a4','a5','a6'};
fprintf(1, 'a = ')
for k1 = 1:length(a)-1
fprintf(1, '''%s'' , ', a{k1})
end
fprintf(1, '''%s''\n', a{end})
a = 'a1' , 'a2' , 'a3' , 'a4' , 'a5' , 'a6'
My (and Kirby’s) pleasure!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by