在MATLAB中的空格后面大写字母,然后删除空格

时间:2014-09-19 02:52:21

标签: matlab findstr capitalization camelcasing capitalize

o我是一名神经科学/生物医学工程专业,目前正在编写MATLAB编程课程。我有一个hw程序我遇到了问题。我非常接近搞清楚了。基本上我必须采用像#34; woot我喜欢matlab'然后离开' wtILvMtlb'。我已经删除了空格,我已经删除了元音,但我似乎无法将空格后的字母大写。当我尝试时,第二个我取出空间,它有点疯狂。我在技术上也没有学过regexprep函数,但是自从我发现它以后我想我也可以使用它。老师不在乎。她可能希望我们做一些索引来获取我们的结果,但如果regexprep有效,我会接受它。

function[cameltoe] = abbreviatingCamelCase(firstWord)

indexing = find(firstWord(1:end - 1) == ' ');%I want to find all the spaces here
firstWord( indexing + 1) = upper(firstWord(indexing + 1)); %I want to uppercase all the words   following a space
firstWord(firstWord == ' ') = [];
firstWord(ismember(firstWord, ' aeiou')) = [];
cameltoe = firstWord;

我需要转换一条鱼两条鱼三条鱼'进入' onFshTwFsh'。我很近,但并不完全。这是我的最后一期。我的代码取出了第一个o。索引似乎不起作用。我试图像六种不同的方式对其进行索引。

2 个答案:

答案 0 :(得分:2)

使用regexprep当然有效,但它有点矫枉过正,无论如何,这样你就不会学习如何编写Matlab。这在纯粹的Matlab"中是可行的。以非常干净和清晰的方式:

ind = find(firstWord(1 : end - 1) == ' ');
firstWord(ind + 1) = upper(firstWord(ind + 1));
firstWord(ismember(firstWord, ' aeiou')) = []

答案 1 :(得分:1)

您可以通过拨打REGEXPREP来完成此操作。

>> str = 'i love matlab'
str =
i love matlab
>> cap = regexprep(str, '(?<=(^| ))(.)', '${upper($1)}')
cap =
I Love Matlab
>> result = regexprep(cap, '[aeiou ]', '')
result =
ILvMtlb

第一个REGEXPREP使用&#34; lookahead&#34;运算符以查找空格或字符串的开头,然后选择下一个字符并将其替换为大写版本。

第二个REGEXPREP只使用一个字符组来代替元音和空格。根据您是否也要删除大写元音,您可能需要使用[aeiouAEIOU ]作为字符组。