找到一个单词中的第一个元音

时间:2016-05-02 02:17:10

标签: matlab

请编写一个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

我不知道为什么,但我没有工作

1 个答案:

答案 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);