Существует два способа представления текста в MATLAB ®. Начиная с R2016b, текст можно хранить в строковых массивах. А в любой версии MATLAB текст можно хранить в символьных массивах. Типичным способом использования символьных массивов является хранение фрагментов текста в виде символьных векторов. MATLAB отображает строки с двойными кавычками и векторы символов с одиночными кавычками.
Вы можете хранить любой 1-by-n последовательность символов в виде строки, используя string тип данных. Начиная с R2017a, заключите текст в двойные кавычки, чтобы создать строку.
str = "Hello, world"str = "Hello, world"
Хотя текст "Hello, world" имеет длину 12 символов, str сам по себе является строкой 1 на 1, или строковым скаляром. Можно использовать строковый скаляр для указания имени файла, метки печати или любой другой части текстовой информации.
Чтобы найти количество символов в строке, используйте strlength функция.
n = strlength(str)
n = 12
Если текст включает двойные кавычки, используйте две двойные кавычки в определении.
str = "They said, ""Welcome!"" and waved."str = "They said, "Welcome!" and waved."
Чтобы добавить текст в конец строки, используйте оператор «плюс», +. Если переменная может быть преобразована в строку, то plus преобразует его и добавляет.
fahrenheit = 71; celsius = (fahrenheit-32)/1.8; tempText = "temperature is " + celsius + "C"
tempText = "temperature is 21.6667C"
Начиная с R2019a, можно также объединять текст с помощью append функция.
tempText2 = append("Today's ",tempText)tempText2 = "Today's temperature is 21.6667C"
string функция может преобразовывать различные типы входных данных, такие как числовые, datetime, duration и категориальные значения. Например, преобразовать выходные данные pi в строку.
ps = string(pi)
ps = "3.1416"
В строковом массиве можно хранить несколько фрагментов текста. Каждый элемент массива может содержать строку, имеющую разное количество символов, без заполнения.
str = ["Mercury","Gemini","Apollo";... "Skylab","Skylab B","ISS"]
str = 2x3 string
"Mercury" "Gemini" "Apollo"
"Skylab" "Skylab B" "ISS"
str является строковым массивом 2 на 3. Длины строк можно найти с помощью strlength функция.
N = strlength(str)
N = 2×3
7 6 6
6 8 3
С R2018b года строковые массивы поддерживаются во всех продуктах MATLAB и MathWorks ®. Функции, которые принимают символьные массивы (и массивы ячеек символьных векторов) в качестве входных данных, также принимают строковые массивы.
Как сохранить 1-по-n последовательность символов в качестве символьного вектора, используя char тип данных, заключите его в одинарные кавычки.
chr = 'Hello, world'chr = 'Hello, world'
Текст 'Hello, world' имеет длину 12 символов и chr сохраняет его в виде символьного вектора 1 на 12.
whos chrName Size Bytes Class Attributes chr 1x12 24 char
Если текст включает одинарные кавычки, используйте две одинарные кавычки в определении.
chr = 'They said, ''Welcome!'' and waved.'chr = 'They said, 'Welcome!' and waved.'
Символьные векторы имеют два основных применения:
Задание отдельных фрагментов текста, например имен файлов и меток печати.
Для представления данных, закодированных с использованием символов. В таких случаях может потребоваться простой доступ к отдельным символам.
Например, последовательность ДНК можно хранить в виде символьного вектора.
seq = 'GCTAGAATCC';Можно получить доступ к отдельным символам или подмножествам символов путем индексирования, точно так же, как индексирование в числовой массив.
seq(4:6)
ans = 'AGA'
Конкатенация символьного вектора с квадратными скобками аналогично конкатенации массивов других типов.
seq2 = [seq 'ATTAGAAACC']seq2 = 'GCTAGAATCCATTAGAAACC'
Начиная с R2019a, можно также объединять текст с помощью append. append функция рекомендуется, поскольку она последовательно обрабатывает строковые массивы, символьные векторы и массивы ячеек символьных векторов.
seq2 = append(seq,'ATTAGAAACC')seq2 = 'GCTAGAATCCATTAGAAACC'
Функции MATLAB, которые принимают строковые массивы в качестве входных данных, также принимают символьные векторы и массивы ячеек символьных векторов.
append | cellstr | char | horzcat | plus | string | strlength