How to join a string cellarray row by row with a specified delimiter

If i have a cellarray "text",
text = {
'a' 'b' 'c'
'X' 'Y' 'z'
'1' '2' '3'
}; % a 3x3 cell
the desired output should be in a row by row concatenation with a comma:
'a,b,c'
'X,Y,z'
'1,2,3'
however,
result = strjoin(text,',')
will only give a result like this:
'a,X,1,b,Y,2,c,z,3'

 採用された回答

MathWorks Support Team
MathWorks Support Team 2018 年 6 月 12 日

0 投票

Starting from R2016b this could be solved rather easily: join(text,','). However, "join" was implemented differently before 2016b and it will give a result like this: 'a,X,1,b,Y,2,c,z,3' (not a row by row concatenation as the customer desires)
The simplest solution before 2016b will just be using a for loop to concatenate the cell array row by row as vectorization is not possible.
result = cell(size(text,1), 1);
for i = 1: size(text, 1)
result(i, :) = {strjoin(text(i, :), ',')};
end

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

製品

リリース

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by