convertStringsToChars

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

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

Синтаксис

B = convertStringsToChars(A)
[B1,...,Bn] = convertStringsToChars(A1,...,An)

Описание

пример

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 array
    "Venus"    "Earth"    "Mars"

C = convertStringsToChars(str)
C = 1x3 cell array
    {'Venus'}    {'Earth'}    {'Mars'}

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

Создайте ряд числового, символ и строковые массивы.

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

     1     2     3

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

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

     2     5
     7     6

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

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

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

     1     2     3

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

newB = 2×2

     2     5
     7     6

newC = 1x2 cell array
    {'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++ с помощью MATLAB® Coder™.

Введенный в R2017b

Для просмотра документации необходимо авторизоваться на сайте