exponenta event banner

convertCharsToStrings

Преобразование массивов символов в массивы строк, оставляя другие массивы неизменными

Описание

При работе с собственным кодом можно использовать convertCharsToStrings чтобы код принимал массивы символов. Тогда вам не придется вносить какие-либо другие изменения в код, написанный для работы со строковыми массивами.

пример

B = convertCharsToStrings(A) новообращенные A в строковый массив, если A - символьный массив или массив ячеек символьных векторов. Если A имеет любой другой тип данных, то convertCharsToStrings прибыль A без изменений.

пример

[B1,...,Bn] = convertCharsToStrings(A1,...,An) преобразует любые символьные массивы или массивы ячеек символьных векторов в A1,...,An в строковые массивы, а затем возвращает их в качестве соответствующих выходных аргументов в B1,...,Bn. Если какой-либо из аргументов A1,...,An имеет любой другой тип данных, то convertCharsToStrings возвращает его без изменений.

Примеры

свернуть все

Создайте символьный вектор и преобразуйте его в строковый скаляр.

chr = 'Mercury'
chr = 
'Mercury'
str = convertCharsToStrings(chr)
str = 
"Mercury"

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

C = {'Venus','Earth','Mars'}
C = 1x3 cell
    {'Venus'}    {'Earth'}    {'Mars'}

str = convertCharsToStrings(C)
str = 1x3 string
    "Venus"    "Earth"    "Mars"

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

Создайте набор числовых, символьных и строковых массивов.

A = [1 2 3]
A = 1×3

     1     2     3

str = ["Mercury","Gemini","Apollo"]
str = 1x3 string
    "Mercury"    "Gemini"    "Apollo"

B = [2 5; 7 6]
B = 2×2

     2     5
     7     6

C = {'volts','amps'}
C = 1x2 cell
    {'volts'}    {'amps'}

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

[newA,newStr,newB,newC] = convertCharsToStrings(A,str,B,C)
newA = 1×3

     1     2     3

newStr = 1x3 string
    "Mercury"    "Gemini"    "Apollo"

newB = 2×2

     2     5
     7     6

newC = 1x2 string
    "volts"    "amps"

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

свернуть все

Входной массив, заданный как массив любого размера или типа данных.

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

свернуть все

Выходной массив. Тип данных выходного массива зависит от типа данных входного массива, A.

  • Если A является вектором символов, то B - строковый скаляр.

  • Если A является массивом ячеек символьных векторов, то B - строковый массив, имеющий одинаковый размер.

  • Если A - символьный массив с несколькими строками, затем столбцы A являются конкатенированными и B возвращается как строковый скаляр. Например, массив символов 3 на 2 ['Xx';'Yy';'Zz'] преобразуется в "XYZxyz".

  • Если A имеет любой другой тип данных, то B идентичен A.

Совет

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

    Например, если определена функция myFunc который принимает три входных аргумента, обрабатывает все три ввода, используя convertCharsToStrings. Оставьте остальную часть кода без изменений.

    function y = myFunc(a,b,c)
        [a,b,c] = convertCharsToStrings(a,b,c);
        <line 1 of original code>
        <line 2 of original code>
        ...

    В этом примере выходные аргументы [a,b,c] перезаписать имеющиеся входные аргументы. Если какой-либо входной аргумент не является символьным массивом или массивом ячеек символьных векторов, то он не изменяется.

    Если myFunc принимает переменное количество входных аргументов, затем обрабатывает все аргументы, указанные varargin.

    function y = myFunc(varargin)
        [varargin{:}] = convertCharsToStrings(varargin{:});
        ...
  • convertCharsToStrings функция более эффективна при преобразовании одного входного аргумента. Если речь идет о производительности, вызовите convertCharsToStrings на одном входном аргументе за один раз, а не на нескольких входах.

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

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