在matlab字符串中添加括号

时间:2017-03-02 13:28:03

标签: matlab

我的项目中有这个字符串:

x = 'a124cd5f'  

我把它分成如下:

x1 = regexp(x, sprintf('\\w{1,%d}', 2), 'match')

答案是:

x1 = ‘a1’ ‘24’ ‘cd’ ‘5f’

现在我想在x1字符串的两边添加括号。我用过这个命令:

x2 = strcat('{', x1, '}')

答案是:

x2 = {‘a1’} {‘24’} {‘cd’} {‘5f’}

但我希望答案就像这样:

x2 = {‘a1’ ‘24’ ‘cd’ ‘5f’}

我该怎么办?

1 个答案:

答案 0 :(得分:1)

regexp返回一个单元格数组,其中包含每个匹配子字符串的单元格。如果希望它们是一个字符串,则需要显式连接这些单元格。

一种选择是使用sprintf

x = 'a124cd5f';
x1 = regexp(x, sprintf('\\w{1,%d}', 2), 'match');

s1 = strtrim(sprintf('''%s'' ', x1{:}));  % Use strtrim to strip the trailing whitespace
s2 = sprintf('{%s}', s1);

返回:

s2 =

{'a1' '24' 'cd' '5f'}