4

Matlab中是否有任何内置函数可以按字符数切割字符串并将其作为单元格数组或其他内容返回。例如,如果调用 A = some_function(string, 3):

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

还是我需要使用循环?

谢谢。

4

2 回答 2

6

另一种更优雅的解决方案(在我看来)是使用regexp

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

str你的字符串在哪里,是n字符数。

例子

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

ans = 
    '123'    '456'    '789'    '0' 
于 2013-03-29T02:07:55.627 回答
3

有点长可能是:

ns = numel(string);
n = 3;
A = cellstr(reshape([string repmat(' ',1,ceil(ns/n)*n-ns)],n,[])')'
于 2013-03-28T20:57:40.150 回答