0

文字列のセル配列があります。アイテムごとに 1 対 n の文字を抽出する必要があります。文字列は常に n 文字より長くなります。参照してください:

data = { 'msft05/01/2010' ;
         'ap01/01/2013' }

% For each string, last 10 characters are removed and put it in the next column

answer = { 'msft' '05/01/2010' ;
           'ap'   '01/01/2013' }

ベクトル化されたソリューションは可能ですか? cellfun を使用してみましたが、成功しませんでした。ありがとう。

4

1 に答える 1

3
data = { 'msft05/01/2010' ;
         'ap01/01/2013' };
for i = 1:length(data)
    s = data{i};
    data{i} = {s(1:end-10) s(end-9:end)};
end

申し訳ありませんが、ベクトル化する必要があることに気づきませんでした...おそらく、ワンライナーのみを提案できます...

data = cellfun(@(s) {s(1:end-10) s(end-9:end)}, data, 'UniformOutput', false);
于 2013-03-14T21:00:01.240 に答える