请编写一个Matlab函数来查找单词中的第一个元音,并使用您的名字作为输入来测试程序。
函数标题为function v = findfirstvowel (word)
我的工作是:
function v = findfirstvowel (word)
vow = 'aeiouAEIOU';
for i=1:size(word)
for j=1:10
if word(i)==vow(j)
v=word(i);
break;
end
end
end
我不知道为什么,但我没有工作
答案 0 :(得分:1)
break
只会突破最里面的for循环。
来自文档:
在嵌套循环中,break仅从发生它的循环中退出。控制传递给该循环结束后的语句。
如果您要退出该功能,则需要使用return
。
function v = findfirstvowel (word)
vow = 'aeiouAEIOU';
for i=1:size(word)
for j=1:10
if word(i)==vow(j)
v=word(i);
return;
end
end
end
使用ismember
之类的东西来检查元音并使用find
返回第一个元组的索引,而不是使用双for循环。您也可以将单词转换为小写,只与'aeiou'
进行比较。
function v = findfirstvowel (word)
isvowel = ismember(lower(word), 'aeiou');
v = word(find(isvowel, 1, 'first'));
end
如果您想要使用此方法的其他元音,您可以执行以下操作。
isvowel = ismember(lower(word), 'aeiou');
vowels = word(isvowel);
first_vowel = vowels(1);
second_vowel = vowels(2);