Создайте вектор символов путем включения последовательности символов в одинарные кавычки.
chr = 'Hello, world'
chr = 'Hello, world'
Векторами символов является 1
-by-n
массивы типа char
. В программировании строка является часто используемым термином для 1
-by-n
массив символов. Однако запуск в R2016b MATLAB® также обеспечивает тип данных string
, таким образом, 1
-by-n
символьные массивы упоминается как векторы символов в документации MATLAB.
whos chr
Name Size Bytes Class Attributes chr 1x12 24 char
Если текст содержит одну кавычку, включайте две кавычки при присвоении вектора символов.
newChr = 'You''re right'
newChr = 'You're right'
Функции, такие как uint16
, преобразовывают символы в свои цифровые коды.
chrNumeric = uint16(chr)
chrNumeric = 1×12 uint16 row vector 72 101 108 108 111 44 32 119 111 114 108 100
Функция char
преобразовывает целочисленный вектор назад в символы.
chrAlpha = char([72 101 108 108 111 44 32 119 111 114 108 100])
chrAlpha = 'Hello, world'
Символьными массивами является m
-by-n
массивы символов, где m
является не всегда 1
. Можно соединить два или больше вектора символов вместе, чтобы создать символьный массив. Это называется concatenation и объяснено для числовых массивов в Создании, конкатенации и расширении матрицы. Как с числовыми массивами, можно объединить символьные массивы вертикально или горизонтально создать новый символьный массив.
Однако рекомендуется, чтобы вы сохранили векторы символов в массиве ячеек, вместо того, чтобы использовать m
-by-n
символьные массивы. Массивы ячеек являются гибкими контейнерами, которые позволяют вам легко хранить векторы символов переменной длины.
Чтобы объединить векторы символов в двумерный символьный массив, используйте квадратные скобки или функцию char
.
Примените оператор конкатенации MATLAB, []
. Разделите каждую строку точкой с запятой (;
). Каждая строка должна содержать то же количество символов. Например, объедините три вектора символов равной длины:
devTitle = ['Thomas R. Lee'; ... 'Sr. Developer'; ... 'SFTware Corp.']
devTitle = 3×13 char array 'Thomas R. Lee' 'Sr. Developer' 'SFTware Corp.'
Если векторы символов имеют различные длины, клавиатуру с пробелами по мере необходимости. Например:
mgrTitle = ['Harold A. Jorgensen '; ... 'Assistant Project Manager'; ... 'SFTware Corp. ']
mgrTitle = 3×25 char array 'Harold A. Jorgensen ' 'Assistant Project Manager' 'SFTware Corp. '
Вызовите функцию char
. Если векторы символов имеют различные длины, char
заполняет более короткие векторы конечными пробелами так, чтобы каждая строка имела то же количество символов.
mgrTitle = char('Harold A. Jorgensen', ... 'Assistant Project Manager', 'SFTware Corp.')
mgrTitle = 3×25 char array 'Harold A. Jorgensen ' 'Assistant Project Manager' 'SFTware Corp. '
Чтобы объединить векторы символов в вектор одной строки, используйте квадратные скобки или функцию strcat
.
Примените оператор конкатенации MATLAB, []
. Разделите векторы вводимого символа запятой или пробелом. Этот метод сохраняет любые конечные пробелы во входных массивах.
name = 'Thomas R. Lee'; title = 'Sr. Developer'; company = 'SFTware Corp.'; fullName = [name ', ' title ', ' company]
MATLAB возвращается
fullName = 'Thomas R. Lee, Sr. Developer, SFTware Corp.'
Вызовите функцию конкатенации, strcat
. Этот метод удаляет конечные пробелы во входных параметрах. Например, объедините векторы символов, чтобы создать гипотетический адрес электронной почты.
name = 'myname '; domain = 'mydomain '; ext = 'com '; address = strcat(name, '@', domain, '.', ext)
MATLAB возвращается
address = 'myname@mydomain.com'
Используйте любую из следующих функций, чтобы идентифицировать символьный массив или определенные символы в символьном массиве.
Функция | Описание |
---|---|
ischar | Определите, является ли вход символьным массивом |
isletter | Найдите все алфавитные буквы в массиве вводимого символа |
isspace | Найдите все пробелы в массиве вводимого символа |
isstrprop | Найдите все символы определенной категории |
Найдите пробелы в векторе символов.
chr = 'Find the space characters in this character vector'; % | | | | | | | % 5 9 15 26 29 34 44 find(isspace(chr))
ans = 5 9 15 26 29 34 44
Функция blanks
создает вектор символов пробелов. Создайте вектор 15 пробелов. Векторы символов всегда отображаются между одинарными кавычками.
chr = blanks(15)
chr = ' '
Вставьте несколько символов непробела посреди вектора знака пробела.
chr(6:10) = 'AAAAA'
chr = ' AAAAA '
Можно выровнять по ширине расположение этих символов к левому или правому использованию функции strjust
:
chrLeft = strjust(chr,'left')
chrLeft = 'AAAAA '
chrRight = strjust(chr,'right')
chrRight = ' AAAAA'
Удалите все символы конечного пробела с deblank
:
chrDeblank = deblank(chr)
chrDeblank = ' AAAAA'
Удалите все продвижение и конечные пробелы с strtrim
:
chrTrim = strtrim(chr)
chrTrim = 'AAAAA'
Generally, MathWorks® не рекомендует расширить размер существующего символьного массива путем присвоения дополнительных символов индексам вне границ массива, таким образом, что часть массива становится заполненной с нулями.
char
| deblank
| strcat
| string
| strjust
| strtrim