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 array, применяет указанный формат, например "HH:mm:ss". Кроме того, вы можете задать локаль как отдельный вход, такой как "en_US".

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

расширить все

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

Входной тип

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

Выборка входа

Выходы выборки

char

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

Если A пуст, '', выход следующий "", строковый скаляр без символов

1×3 char array
    'foo'

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

Массив ячеек

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

{137,'foo'}

["137" "foo"]

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

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

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

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

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

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

Использование char для преобразования в точки ASCII или Unicode.

[137 3.1e-3 8.5e-6]

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

datetime массив

Для задания формата и локали см. dateFmt.

datetime(2020,6,1)

"01-Jun-2020"

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

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

logical([0 1])

["false" "true"]

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

Формат даты и локаль, заданные как отдельные векторы символов или строковые скаляры. Входные A должен иметь тип datetime, duration, или 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". Для получения дополнительной информации смотрите свойство 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 Форматы см. в разделе Установка формата отображения даты и времени.

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

  • "system", для определения локали системы.

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

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

расширить все

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

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

Примеры

свернуть все

Чтобы найти уникальные слова в строке, разделите их на пробелы символов и вызывайте 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"

Совет

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

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

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

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

.
Введенный в R2016b