有没有在Matlab任何内建的功能,通过字符数削减字符串,并将它作为一个单元阵列或东西。 例如,如果呼叫A = some_function(字符串,3):
Input: string = '1234567890'
Output: A = {'123', '456', '789', '0'}
或者我需要使用循环?
谢谢。
有没有在Matlab任何内建的功能,通过字符数削减字符串,并将它作为一个单元阵列或东西。 例如,如果呼叫A = some_function(字符串,3):
Input: string = '1234567890'
Output: A = {'123', '456', '789', '0'}
或者我需要使用循环?
谢谢。
有点长可能是:
ns = numel(string);
n = 3;
A = cellstr(reshape([string repmat(' ',1,ceil(ns/n)*n-ns)],n,[])')'
另一种解决方案,这是稍微更优雅(在我看来),将使用regexp
:
A = regexp(str, sprintf('\\w{1,%d}', n), 'match')
其中str
是您的字符串和n
是字符数。
>> regexp('1234567890', '\w{1,3}', 'match')
ans =
'123' '456' '789' '0'