строка

Описание

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

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

Создание

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

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

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

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

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

Синтаксис

str = string(A)
str = string(D)
str = string(D,fmt)
str = string(D,fmt,locale)

Описание

пример

str = string(A) преобразовывает входной массив в массив строк.

пример

str = string(D) преобразовывает datetime, длительность или календарный массив длительности в массив строк в формате, заданном свойством Format D. Вывод содержит одну дату или длительность в каждой строке.

пример

str = string(D,fmt) представляет даты или длительность в заданном формате, такую как 'HH:mm:ss'.

str = string(D,fmt,locale) представляет даты или длительность в заданной локали, такую как 'en_US'. Локаль влияет на язык, используемый, чтобы представлять строки, такие как дневные имена и месяц.

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

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

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

  • Если A является вектором символа, то string преобразовывает A в скаляр строки. Вывод str и входной параметр A имеют те же символы в том же порядке.

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

  • Если A является числовым массивом, то string преобразовывает каждый номер в строковый элемент в str.

    В отличие от функции char, string не обрабатывает числа как кодовые точки Unicode® или ASCII.

  • Если A является логическим массивом, то string преобразовывает каждое значение или в "false" или в "true".

  • Если A является [], то string возвращает 0-by-0 массив строк.

Введите дату и время, заданную как массив длительности или datetime.

Типы данных: datetime | длительность | calendarDuration

Формат даты и времени, заданный как [], вектор символа или скаляр строки. Если вы задаете [], то string представляет, вводит D в формате, заданном свойством Format D.

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

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

  • Форматы duration являются или отдельными символами ('y', 'd', 'h', 'm', или 's') или одна из этих комбинаций:

    • 'dd:hh:mm:ss'

    • 'hh:mm:ss'

    • 'mm:ss'

    • 'hh:mm'

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

  • Форматы calendarDuration могут включать комбинации символов 'y', 'q', 'm', 'w', 'd' и 't' по порядку от самого большого до самого маленького модуля времени, таких как 'ym'.

Для получения дополнительной информации о duration и форматах calendarDuration, смотрите Формат отображения Даты и времени Набора.

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

locale может быть:

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

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

Входной параметр locale может быть любым из значений, принятых аргументом в виде пар "имя-значение" 'Locale' для функции datetime.

Пример: 'en_US'

Пример: 'ja_JP'

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

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

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

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 array
    "a"
    "horse"
    "a"
    "horse"
    "my"
    "kingdom"
    "for"
    "a"
    "horse"

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

str = unique(str)
str = 5x1 string array
    "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 array
    {'Mercury'}    {'Gemini'  }    {'Apollo'}
    {'Skylab' }    {'Skylab B'}    {'ISS'   }

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

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

str(1,2)
ans = 
"Gemini"

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

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

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

    77    65    84    76    65    66

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

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

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

str = ["256","3.1416","8.9e-3"]
str = 1x3 string array
    "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

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

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

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

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

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

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

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

Советы

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

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

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

Введенный в R2017b

Была ли эта тема полезной?