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