有几种方法可以做到这一点。所有这些方法都假设您的字符串长度是even。如果字符数量为奇数,则最后一对字符无法分组为一对,因此下面的任何方法都会给您带来尺寸不匹配或越界错误。
方法#1 - 分成单元格然后使用strjoin
第一种方法是将字符串分解为单独的单元格,然后通过strjoin带空格:
Scell = mat2cell(S, 1, 2*ones(1,numel(S)/2));
Out_S = strjoin(Scell, ' ');
We get:
Out_S =
AB AC BA DE CA EF
方法#2 - 正则表达式
您可以使用正则表达式精确计算每个标记的 2 个字符,然后在每个标记的末尾插入一个空格,如果末尾恰好有空格,则剪掉末尾的任何空格:
Out_S = strtrim(regexprep(S, '.{2}', '$0 '));
We get:
Out_S =
AB AC BA DE CA EF
方法 #3 - 重塑添加额外的一行空格并重塑回来
您可以重塑字符矩阵,使每对字符都是一列,您可以插入另一行充满空格的行,然后重塑回来。我们还删除了任何不必要的空格:
Sr = reshape(S, 2, []);
Sr(3,:) = 32*ones(1,size(Sr,2));
Out_S = strtrim(Sr(:).');
We get:
Out_S =
AB AC BA DE CA EF