exponenta event banner

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около-0 символьный массив (отображается как '')

  • Отсутствующая строка (отображается как <missing>) в 0около-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++ с помощью MATLAB ® Coder™

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