2017-03-02 147 views
0

我有這串在我的項目:加括號到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’} 

我可怎麼辦呢?

+0

目前尚不清楚你想要的! 'x1'是一個char類型的單元數組,但是你想要'x2'是什麼?如果它應該只是一個看起來像你所描述的字符,你可以使用:'x2 = ['{''',strjoin(x1,'''''),'''}']' –

回答

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'} 
+0

謝謝但是我也需要逗號,如{'a1''24''cd''5f'} –

+0

該字符串中沒有逗號(',')。假設你的意思是引號('''),我在發佈後立即對問題進行了小小的修改。 – excaza

+0

是的,沒錯 –