Создайте вектор символа путем включения последовательности символов в одинарные кавычки.
chr = 'Hello, world'
chr =
'Hello, world'
Векторами символов является 1-by-n массивы типа char. В программировании строка является часто используемым термином для 1-by-n массив символов. Однако запуск в R2016b MATLAB® также обеспечивает тип данных string, таким образом, 1-by-n символьные массивы упоминается как векторы символов в документации MATLAB.
whos chrName 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. Можно соединить два или больше векторов символов вместе, чтобы создать символьный массив. Это называется конкатенацией и объяснено для числовых массивов в Создании, Конкатенации и Расширении Матриц. Как с числовыми массивами, можно объединить символьные массивы вертикально или горизонтально создать новый символьный массив.
Однако рекомендуется, чтобы вы сохранили векторы символов в массиве ячеек, вместо того, чтобы использовать 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 | строка | strjust | strtrim