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

Существует два способа представлять текст в MATLAB®. Начиная в R2016b, можно сохранить текст в строковых массивах. И в любой версии MATLAB, можно сохранить текст в символьных массивах. Типичное использование для символьных массивов должно сохранить части текста как векторы символов. MATLAB отображает строки с двойными кавычками и векторы символов с одинарными кавычками.

Представление текста с массивами строк

Можно сохранить любой 1 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, длительность и категориальные значения. Например, преобразуйте выход pi к строке.

ps = string(pi)
ps = 
"3.1416"

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

str = ["Mercury","Gemini","Apollo";...
       "Skylab","Skylab B","ISS"]
str = 2x3 string array
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

str 2 3 массив строк. Можно найти длины строк с strlength функция.

N = strlength(str)
N = 2×3

     7     6     6
     6     8     3

С R2018b строковые массивы поддерживаются в продуктах MathWorks® и MATLAB. Функции, которые принимают символьные массивы (и массивы ячеек из символьных векторов) как входные параметры также, принимают строковые массивы.

Представление текста с векторами символов

Сохранить 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.'

Векторы символов имеют два основного использования:

  • Задавать одну части текста, такие как метки графика и имена файлов.

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

Например, можно сохранить последовательность DNA как вектор символов.

seq = 'GCTAGAATCC';

Можно получить доступ к отдельным символам или подмножествам символов путем индексации, так же, как вы индексировали бы в числовой массив.

seq(4:6)
ans = 
'AGA'

Конкатенация вектора символов с квадратными скобками, так же, как вы конкатенируете другие типы массивов.

seq2 = [seq 'ATTAGAAACC']
seq2 = 
'GCTAGAATCCATTAGAAACC'

Начиная в R2019a, также можно конкатенировать текст с помощью append. append функция рекомендуется, потому что она последовательно обрабатывает строковые массивы, векторы символов и массивы ячеек из символьных векторов.

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

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

Смотрите также

| | | | | |

Похожие темы