matlab - 加入保留引号的单元格字符串

matlab - join cell strings keeping quotations

假设我有一个字符串单元格如下:

ss = {'one', 'two', 'three'}

我想将这些字符串连接成 1 个字符串。使用 strjoin 我得到:

>> str = strjoin(ss, ', ')
str =
one, two, three

有没有什么捷径(1-2行代码)保留所有引用',如下:

str = 'one', 'two', 'three'

尝试提供 sprintf a comma-separated list of the strings contained in ss. In the format specifier 您可以包含引号、逗号和 space。最后一个逗号和 space 需要在末尾删除。

result = sprintf('''%s'', ', ss{:}); %// cat the strings with quotes, comma and space
result = result(1:end-2); %// remove extra comma and space

您或许可以在字符串元胞数组上使用 regular expressions 在字符串前后插入引号,然后在其上使用 strjoin

ss = {'one', 'two', 'three'};
ss2 = regexprep(ss, '.+', '''[=10=]''');
out = strjoin(ss2, ', ');

regexprep 将元胞数组中与模式匹配的字符串替换为其他内容。在这种情况下,我发现使用模式 .+ 收集整个单词,然后在单词前后放置一个单引号。这是由 ''[=15=]'' 完成的。每对 '' 是一个单引号。我在后面用逗号分隔字符串。

我们得到:

out =

'one', 'two', 'three'