convertStringsToChars

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

Описание

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

пример

B = convertStringsToChars(A) преобразует A в вектор символов или массив ячеек из векторов символов, если A являются строковые массивы. В противном случае, convertStringsToChars возвращает A без изменений.

пример

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

Примеры

свернуть все

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

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

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

str = ["Venus","Earth","Mars"]
str = 1x3 string
    "Venus"    "Earth"    "Mars"

C = convertStringsToChars(str)
C = 1x3 cell
    {'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] = convertStringsToChars(A,str,B,C)
newA = 1×3

     1     2     3

newStr = 1x3 cell
    {'Mercury'}    {'Gemini'}    {'Apollo'}

newB = 2×2

     2     5
     7     6

newC = 1x2 cell
    {'volts'}    {'amps'}

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

свернуть все

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

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

свернуть все

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

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

  • Если A - строковые массивы любого другого размера, затем B - массив ячеек из векторов символов, имеющий тот же размер.

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

Если A являются строковые массивы, тогда convertStringsToChars преобразует любой элемент, который является:

  • Пустая строка (отображается как "") на 0-by- 0 Символьный массив (отображается как '')

  • Отсутствующая строка (отображается как <missing>) на 0-by- 0 Символьный массив

Если A - пустые строковые массивы, затем B - пустой массив ячеек. Пустой массив имеет по крайней мере одну размерность 0.

Совет

  • Чтобы включить принятие существующим кодом строковых массивов в качестве входов, добавьте вызов к convertStringsToChars в начале вашего кода.

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

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

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

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

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

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

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