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'

并用 'e' 切换为 'z' 返回这些

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 回答