由字符的数量分割字符串MATLAB(Splitting string by number of ch

2019-08-18 03:54发布

有没有在Matlab任何内建的功能,通过字符数削减字符串,并将它作为一个单元阵列或东西。 例如,如果呼叫A = some_function(字符串,3):

Input: string = '1234567890'
Output: A = {'123', '456', '789', '0'}

或者我需要使用循环?

谢谢。

Answer 1:

有点长可能是:

ns = numel(string);
n = 3;
A = cellstr(reshape([string repmat(' ',1,ceil(ns/n)*n-ns)],n,[])')'


Answer 2:

另一种解决方案,这是稍微更优雅(在我看来),将使用regexp

A = regexp(str, sprintf('\\w{1,%d}', n), 'match')

其中str是您的字符串和n是字符数。

>> regexp('1234567890', '\w{1,3}', 'match')

ans = 
    '123'    '456'    '789'    '0' 


文章来源: Splitting string by number of characters matlab