Текст в строке и Символьных массивах

Существует два способа представления текста в 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, +. Если переменную можно преобразовать в строку, то 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"

The string функция может преобразовывать различные типы входов, таких как число, datetime, длительность и категориальные значения. Для примера преобразуйте выход 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 chr
  Name      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. The append Функция рекомендуется, потому что она обрабатывает строковые массивы, векторы символов и массивы ячеек векторов символов последовательно.

seq2 = append(seq,'ATTAGAAACC')
seq2 = 
'GCTAGAATCCATTAGAAACC'

Функции MATLAB, которые принимают строковые массивы как входы, также принимают векторы символов и массивы ячеек символьных векторов.

См. также

| | | | | |

Похожие темы