Как я могу создать аббревиатуру из строки в MATLAB? - PullRequest
3 голосов
/ 14 июня 2010

Есть ли простой способ создать аббревиатуру из строки в MATLAB? Например:

'Superior Temporal Gyrus' => 'STG'

Ответы [ 2 ]

8 голосов
/ 14 июня 2010

Если вы хотите поместить каждую заглавную букву в сокращение ...

... вы можете использовать функцию REGEXP :

str = 'Superior Temporal Gyrus';  %# Sample string
abbr = str(regexp(str,'[A-Z]'));  %# Get all capital letters

..или вы можете использовать функции UPPER и ISSPACE :

abbr = str((str == upper(str)) & ~isspace(str));  %# Compare str to its uppercase
                                                  %#   version and keep elements
                                                  %#   that match, ignoring
                                                  %#   whitespace

... или вместо этого вы можете использовать значения ASCII / UNICODE для заглавных букв:

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


Если вы хотите поместить каждую букву, начинающую слово, в сокращение ...

..Вы можете использовать функцию REGEXP :

abbr = str(regexp(str,'\w+'));  %# Get the starting letter of each word

... или вы можете использовать функции STRTRIM , FIND и ISSPACE :

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

... или вы можете изменить вышеуказанное, используя логическое индексирование , чтобы избежать вызова FIND :

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


Если вы хотите поместить каждую заглавную букву, начинающую слово в аббревиатуру ...

... вы можетеиспользуйте функцию REGEXP :

abbr = str(regexp(str,'\<[A-Z]\w*'));
0 голосов
/ 14 июня 2010

спасибо, также это:

s1(regexp(s1, '[A-Z]', 'start'))

вернет аббревиатуру, состоящую из заглавных букв в строке. Обратите внимание, что строка должна быть в регистре предложений

...