MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   如何在MATLAB中从字符串创建首字母缩写词? (https://www.labfans.com/bbs/showthread.php?t=23529)

poster 2019-12-10 20:41

如何在MATLAB中从字符串创建首字母缩写词?
 
有没有一种简单的方法可以从MATLAB中的字符串创建首字母缩写词?例如:

'Superior Temporal Gyrus' => 'STG'

[B]回答:[/B]

[B]如果您想将每个大写字母都写成一个缩写... [/B]

...您可以使用功能[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/regexpi.html"]REGEXP[/URL] :

str = 'Superior Temporal Gyrus'; %# Sample string abbr = str(regexp(str,'[AZ]')); %# Get all capital letters ...或者您可以使用[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/upper.html"]UPPER[/URL]和[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/isspace.html"]ISSPACE[/URL]函数:

abbr = str((str == upper(str)) & ~isspace(str)); %# Compare str to its uppercase %# version and keep elements %# that match, ignoring %# whitespace ...或者您可以改用[URL="http://www.cs.utk.edu/~pham/ascii_table.jpg"]ASCII / UNICODE值[/URL]来表示大写字母:

abbr = str((str = 65)); %# Get capital letters A (65) to Z (90)


[B]如果您想将每个单词的首字母缩写为... [/B]

...您可以使用功能[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/regexpi.html"]REGEXP[/URL] :

abbr = str(regexp(str,'\w+')); %# Get the starting letter of each word ...或者您可以使用功能[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/strtrim.html"]STRTRIM[/URL] , [URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/find.html"]FIND[/URL]和[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/isspace.html"]ISSPACE[/URL] :

str = strtrim(str); %# Trim leading and trailing whitespace first abbr = str([1 find(isspace(str))+1]); %# Get the first element of str and every %# element following whitespace ...或者您可以使用[URL="http://www.mathworks.com/access//helpdesk/help/techdoc/math/f1-85462.html#bq7egb6-1"]逻辑索引[/URL]修改以上内容,以避免调用[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/find.html"]FIND[/URL] :

str = strtrim(str); %# Still have to trim whitespace abbr = str([true isspace(str)]);


[B]如果您想将每个单词的[I]首[/I]字母[I]大写[/I]缩写, [/B]

...您可以使用功能[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/regexpi.html"]REGEXP[/URL] :

abbr = str(regexp(str,'\


所有时间均为北京时间。现在的时间是 01:04

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.