string

Описание

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

Можно индексировать в, измениться и конкатенировать строковые массивы с помощью стандартных операций над массивами, и можно добавить текст им использующий + оператор. Если массив строк представляет числа, то можно преобразовать его в числовой массив с помощью double функция.

Создание

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

str = "Hello, world"
str = 
"Hello, world"

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

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

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

Описание

пример

str = string(A) преобразует входной массив в массив строк. Например, если A числовой векторный [1 20 300]str массив строк, одного размера, ["1" "20" "300"].

пример

str = string(A, dateFmt), где A datetime или duration массив, применяет заданный формат, такой как "HH:mm:ss". Кроме того, можно задать локаль как отдельный вход, такой как "en_US".

Входные параметры

развернуть все

Входной массив. Тип данных A определяет как string преобразует A к массиву строк.

InputType

Примечания преобразования

Демонстрационный вход

Демонстрационный Выход

char

Каждая строка становится строковым скаляром

Если A isempty, выходом является "", строковый скаляр без символов

1×3 char array
    'foo'

1×1 string array
    "foo"
2×3 char array
    'foo'
    'bar'
2×1 string array
    "foo"
    "bar"

CellArray

Каждый элемент массива ячеек должен быть конвертируемым к строке 1 на 1.

{137,'foo'}

["137" "foo"]

Категориальный массив

Выводимые строки являются названиями категории, соответствующими каждому элементу A.

1x3 categorical array
    red    green    blue
1x3 string array
    "red"    "green"    "blue"

Числовой массив

Выходной формат и точность, эквивалентная использованию %g из compose.

Если A isempty, выход является массивом пустой строки 0 на 0.

Используйте char преобразовывать в точки Unicode или ASCII.

[137 3.1e-3 8.5e-6]

["137" "0.0031" "8.5e-06"]

datetime массив

Чтобы задать формат и локаль, см. dateFmt.

datetime(2020,6,1)

"01-Jun-2020"

Логический массив

logical функция не принимает входные параметры строки, таким образом, преобразование является односторонним.

logical([0 1])

["false" "true"]

Конвертированные отсутствующие значения, такие как NaNNAT, и <undefined> категориальные значения, отображение как <missing>.

Формат даты и локаль в виде отдельных векторов символов или строковых скаляров. Введите A должен иметь тип datetimeдлительность, или calendarDuration.

Если вы не задаете формат, string использует значение в Format свойство A. Чтобы задать только локаль, используйте пустой массив в качестве заполнителя для формата, [].

Пример: string(A, "yyyy-MM-dd")

Пример: string(A, "yyyy-MM-dd","en_US")

Пример: string(A, [],"en_US")

Поддерживаемые форматы зависят от типа данных A.

  • datetime форматы могут включать комбинации модулей и разделителей, таких как "yyyy-MMM-dd HH:mm:ss.SSS". Для получения дополнительной информации смотрите Свойство формата для datetime массивы.

  • duration форматы являются любой отдельными символами (yDHM, или s) или одна из этих комбинаций:

    • "dd:hh:mm:ss"

    • "hh:mm:ss"

    • "mm:ss"

    • "hh:mm"

    • Любое вышеупомянутое, максимум с девятью S символы, чтобы указать на цифры доли секунды, такие как "hh:mm:ss.SSSS"

  • calendarDuration форматы могут включать комбинации символов yQMWD, и t в порядке от самого большого до самого маленького модуля времени, такого как "ym". Для получения дополнительной информации о duration и calendarDuration форматы, смотрите Формат отображения Даты и времени Набора.

Локаль влияет на язык, используемый, чтобы представлять определенные компоненты дат и времен, такие как имена месяца. Допустимые значения:

  • "system", задавать вашу системную локаль.

  • Вектор символов в форме xx_YY, где xx является строчный ISO 639-1 двухбуквенный код, который задает язык и YY, является прописной альфой ISO 3166-1 2 кода, которые задают страну. Для демонстрационных значений смотрите аргумент значения имени 'Локали' для datetime функция.

Выходные аргументы

развернуть все

Выходной массив, возвращенный как массив строк.

MATLAB хранит все символы как символы Unicode® с помощью кодирования UTF-16. Для получения дополнительной информации о Unicode смотрите Unicode.

Примеры

свернуть все

Чтобы найти уникальные слова в строке, разделите его на пробелах и вызовите unique функция.

Во-первых, создайте строковый скаляр.

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"

Удалите восклицательный знак.

str = erase(str,"!")
str = 
"A horse A horse My kingdom for a horse"

Преобразуйте все буквы в str к символам нижнего регистра.

str = lower(str)
str = 
"a horse a horse my kingdom for a horse"

Разделите str на пробелах с помощью split функция. split отбрасывает пробелы и возвращает результат как массив строк.

str = split(str)
str = 9x1 string
    "a"
    "horse"
    "a"
    "horse"
    "my"
    "kingdom"
    "for"
    "a"
    "horse"

Найдите уникальные слова в str использование unique функция.

str = unique(str)
str = 5x1 string
    "a"
    "for"
    "horse"
    "kingdom"
    "my"

A = 'Four score and seven years ago'
A = 
'Four score and seven years ago'
str = string(A)
str = 
"Four score and seven years ago"

str содержит те же символы как A. Но в то время как A вектор символов, str строковый скаляр.

c = size(A)
c = 1×2

     1    30

s = size(str)
s = 1×2

     1     1

Возвратить количество символов в str, используйте strlength функция.

n = strlength(str)
n = 30

Преобразуйте массив ячеек из символьных векторов в массив строк.

A = {'Mercury','Gemini','Apollo';...
     'Skylab','Skylab B','ISS'}
A = 2x3 cell
    {'Mercury'}    {'Gemini'  }    {'Apollo'}
    {'Skylab' }    {'Skylab B'}    {'ISS'   }

str = string(A)
str = 2x3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

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

str(1,2)
ans = 
"Gemini"

Доступ к третьему столбцу.

str(:,3)
ans = 2x1 string
    "Apollo"
    "ISS"

A = [77 65 84 76 65 66]
A = 1×6

    77    65    84    76    65    66

str = string(A)
str = 1x6 string
    "77"    "65"    "84"    "76"    "65"    "66"

str массив строк, в котором каждый элемент представляет номер от A. Обратите внимание на то, что string не обрабатывает числа как ASCII, или Unicode® оценивает путь который char функция делает.

Создайте массив строк, в котором каждый элемент представляет номер. Чтобы преобразовать массив строк в числовой массив, используйте double функция.

str = ["256","3.1416","8.9e-3"]
str = 1x3 string
    "256"    "3.1416"    "8.9e-3"

X = double(str)
X = 1×3

  256.0000    3.1416    0.0089

Когда входной параметр является массивом строк, double функционируйте обрабатывает каждый элемент как представление значения с плавающей точкой. Однако, когда вход является символьным массивом, double вместо этого преобразует каждый символ в номер, представляющий его значение Unicode®.

Как альтернатива, используйте str2double функция. str2double подходит, когда входной параметр может быть массивом строк, вектором символов или массивом ячеек из символьных векторов.

Y = str2double(str)
Y = 1×3

  256.0000    3.1416    0.0089

C = '2.7183';
Z = str2double(C)
Z = 2.7183

Преобразуйте от массива длительности, чтобы представить в виде строки. Для получения дополнительной информации связанный с преобразованием из типов общих данных, чтобы представить в виде строки видят, Преобразуют Между Массивами datetime, Числами и текстом

Создайте duration массив.

D = hours(23:25) + minutes(8) + seconds(1.2345)
D = 1x3 duration
   23.134 hr   24.134 hr   25.134 hr

Преобразуйте D к массиву строк.

str = string(D)
str = 1x3 string
    "23.134 hr"    "24.134 hr"    "25.134 hr"

str массив строк с одним значением длительности на элемент. str одного размера с D.

Задайте формат значений длительности в str.

str = string(D,'hh:mm')
str = 1x3 string
    "23:08"    "24:08"    "25:08"

Советы

  • Для списка функций, чтобы создать и управлять текстом в строковых массивах, см. Символы и строки.

  • Если входной параметр является объектом, то он должен принадлежать классу, который реализует a string метод, чтобы представлять объект как строку.

  • Преобразование char массив к числовому типу произведет массив соответствующих кодовых обозначений Unicode. Текст в строках не преобразует таким образом. Преобразование строки, которая не представляет одно числовое значение double произведет NaN результат. Для получения дополнительной информации смотрите Значения ASCII и Unicode.

Расширенные возможности

Введенный в R2017b