4

文字列を文字数で切り取り、セル配列または何かとして返す組み込み関数がMatlabにありますか。たとえば、call 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 に答える