我必须将字符串上的每个元音改为大写或小写,取决于它已经是什么..所以"大写小写"变成"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非常新,我有点失落.我恭喜你的帮助
使用ismember发现每种类型的元音的所有出现(大写或小写),然后upper并lower把它们转换:
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)