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