9

私はこのような文字列のセルリストを持っています:

cellArr = 
      'folderName_fileName_no.jpg',
      'folderName2_fileName2_no2.jpg'

こんな風になりたい

{folderName, fileName, no},
{folderName2, fileName2, no2}

matlabでそれを行う方法は?私は私が使うことができることを知っています

regexp(cellArr, '_', 'split'), 

しかし、どうすれば複数の区切り文字を使用できますか?

4

3 に答える 3

12

私はそれを見つけました..返信をありがとう..

regexp(cellArr, '[_.]', 'split')
于 2012-10-31T22:23:21.853 に答える
0

これは、文字列のトークン化の C メソッドに非常に似ています。を使用するstrtokと、選択した区切り文字に基づいてトークン化できます(あなたの場合は '_' )

STRTOK リファレンス

strtok毎回最初のトークンのみを返すため、残りの文字列をループで繰り返し呼び出す C のイディオムを使用することに注意してください。リファレンスに例が示されています。

あなたの編集に答えるには:

文字列のセル配列で strtok を使用すると、token に文字列のセル配列が返され、remain に文字配列が返されます。

s = {'all in good time'; ...
 'my dog has fleas'; ...
 'leave no stone unturned'};

remain = s;

for k = 1:4
   [token, remain] = strtok(remain);
   token
end

リファレンスの例 3 から直接。< わかりやすくするために、ファイル拡張子を削除する簡単なロジックを置き換えstrtok(remain)て追加するだけです。strtok(remain,REQUIRED_DELIMITERS)

于 2012-10-31T22:08:44.143 に答える