exponenta event banner

последовательность

Описание

Текст в 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 в строковый массив.

Тип ввода

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

Ввод образца

Пример выходных данных

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 или Юникод.

[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"]

Преобразованные отсутствующие значения, например 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". Дополнительные сведения см. в свойстве «Формат» для 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 alpha-2, указывающий страну. Примеры значений см. в аргументе имя-значение языкового стандарта для datetime функция.

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

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

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

MATLAB хранит все символы в виде символов Юникода ® с использованием 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 преобразует каждый символ в число, представляющее значение Юникода ®.

В качестве альтернативы используйте 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 для представления объекта в виде строки.

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

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

.
Представлен в R2016b