如何只将元音从大写改为小写,反之亦然(MATLAB)

Dav*_*era 3 string matlab

我必须将字符串上的每个元音改为大写或小写,取决于它已经是什么..所以"大写小写"变成"uPPeRCaSe lOwErcAsE"

到目前为止,我对这种方法没有成功

str=  'UPPERCASE lowercase';
vow = 'aeiou';
vowm = 'AEIOU';

for k = 1:5

if str(str == vow(k))
str(str == vow(k))= vowm(k);
else 
    if str(str == vowm(k))
        str(str == vowm(k))= vow(k);
Run Code Online (Sandbox Code Playgroud)

预期产出:"uPPeRCaSe lOwErcAsE"

实际输出:"uPPERCASE lOwErCAsE"

我对matlab非常新,我有点失落.我恭喜你的帮助

Lui*_*ndo 5

使用ismember发现每种类型的元音的所有出现(大写或小写),然后upperlower把它们转换:

str = 'UPPERCASE lowercase';    %// original string
indl = ismember(str, 'aeiou');  %// locations of lowercase vowels
indu = ismember(str, 'AEIOU');  %// locations of uppercase vowels
str(indl) = upper(str(indl));   %// convert from lower to upper
str(indu) = lower(str(indu));   %// convert from upper to lower
Run Code Online (Sandbox Code Playgroud)