在Matlab中将字符串中每个单词的第一个字母大写/大写?
在Matlab中将字符串中每个单词的第一个字母大写/大写的最佳方法是什么?
即
西班牙的雨主要落在飞机上
到
西班牙的雨主要落在飞机上
What's the best way to capitalize / capitalise the first letter of every word in a string in Matlab?
i.e.
the rain in spain falls mainly on the plane
to
The Rain In Spain Falls Mainly On The Plane
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
因此,使用字符串
只需使用 Matlab 中的 regexp 替换函数,regexprep
\<[az]
匹配每个单词的第一个字符,您可以使用${upper( $1)}
这也可以使用
\<\w
来匹配每个单词开头的字符。So using the string
Simply use regexp replacement function in Matlab, regexprep
The
\<[a-z]
matches the first character of each word to which you can convert to upper case using${upper($1)}
This will also work using
\<\w
to match the character at the start of each word.由于 Matlab 附带用 Perl 构建,对于每个复杂的字符串或文件处理任务可以使用 Perl 脚本。所以你也许可以使用这样的东西:
其中 Capitalize.pl 是一个 Perl 脚本,如下所示:
Perl 代码取自 这个堆栈溢出问题。
Since Matlab comes with build in Perl, for every complicated string or file processing tasks Perl scripts can be used. So you could maybe use something like this:
where capitalize.pl is a Perl script as follows:
The perl code was taken from this Stack Overflow question.
多种方法:
更优雅/更复杂——cell-arrays、textscan 和 cellfun 对于此类事情非常有用:
Loads of ways:
More elegant/complex -- cell-arrays, textscan and cellfun are very useful for this kind of thing:
不那么优雅和高效,更具可读性和可维护性。
Less ellegant and efficient, more readable and maintainable.