1

私はMATLABにかなり慣れていません。宿題のために、「and」または「And」の後に単語を選択し、すべての文字Xを文字Yに置き換える必要があるテキストブロックがあります.Pythonでこれを行う方法を知っています.split() と、X を検索する sting(word) を循環します。ただし、matlab では失われます。同等のコマンドがあれば教えてください。次のようなコマンドに沿った何か

    fileread
    textscan
    fseek

ありがとうございました

編集:

私が実際に意味したのは、文字列からのことでした:

    str = 'I like apples and pineapples and other fruit'

取得する必要があります

    'pineapples'
    'other'

'z' を 'e' に切り替えてこれらを返します

4

1 に答える 1

0

大文字と小文字を区別しない通常の正規表現を使用します。andまたはの後のすべてを検索し、次Andのように切り替えます。XY

str = 'This is a text with X and X and Z'
[startIndex,endIndex] = regexpi(str,'and');
str2 = str(endIndex(1) + 1 : end)
str2(str2 == 'X') = 'Y';
str = [str(1:endIndex), str2]

str =

This is a text with X and Y and Z

少し面倒です。もっと簡単にできると思いますが、少なくともうまくいきます!のケースについて大文字と小文字を区別しない場合は、代わりに をX使用します。strcmpi==

アップデート#:

あなたのコメントの後、これはうまくいくはずです:

[startIndex,endIndex] = regexpi(str,'and');
str2 = str(endIndex(1) + 1 : end);
words = regexp(str2,' ','split');
nums = cellfun(@(x) find(x == 'e'), words, 'UniformOutput', false);
[idx] = find(~cellfun(@isempty, nums));
wordList = words(idx)
wordList(wordList == 'e') = 'X'
于 2013-11-09T12:05:15.050 に答える