Main Content

convertStringsToChars

Convertir arreglos de cadenas en arreglos de caracteres, dejando otros arreglos sin alterar

Descripción

Cuando trabaje con su propio código, puede utilizar convertStringsToChars para hacer que dicho código acepte entradas de caracteres. De este modo, no tendrá que realizar ningún otro cambio en el código que había escrito para trabajar con arreglos de caracteres.

B = convertStringsToChars(A) convierte A en un vector de caracteres o en un arreglo de celdas de vectores de caracteres si A es un arreglo de cadenas. Si no, convertStringsToChars devuelve A sin alterar.

ejemplo

[B1,...,Bn] = convertStringsToChars(A1,...,An) convierte cualquier arreglo de cadenas de A1,...,An en vectores de caracteres o arreglos de celdas de vectores de caracteres y después los devuelve como los argumentos de salida correspondientes de B1,...,Bn. Si alguno de los argumentos A1,...,An tiene cualquier otro tipo de dato, convertStringsToChars lo devuelve sin modificar.

ejemplo

Ejemplos

contraer todo

Cree un escalar de cadena y conviértalo en un vector de caracteres.

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

Convierta un arreglo de cadenas en un arreglo de celdas de vectores de caracteres.

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

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

Procese un número aleatorio de arreglos de entrada de diferentes tipos y convierta solo los arreglos de cadenas en arreglos de caracteres.

Cree un conjunto de arreglos numéricos, de caracteres y de cadenas.

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'}

Convierta el arreglo de cadenas y deje los demás arreglos sin alterar.

[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'}

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como arreglo de cualquier tamaño y tipo de datos.

Argumentos de salida

contraer todo

Arreglo de salida. El tipo de datos del arreglo de salida depende del tipo de datos del arreglo de entrada, A.

  • Si A es un escalar de cadena, B es un vector de caracteres.

  • Si A es un arreglo de cadenas de cualquier otro tamaño, B es un arreglo de celdas de vectores de caracteres que tiene el mismo tamaño.

  • Si A tiene otro tipo de datos, B es idéntico a A.

Si A es un arreglo de cadenas, convertStringsToChars convierte cualquier elemento que sea:

  • Una cadena vacía (mostrada como "") a un arreglo de caracteres de 0 por 0 (mostrado como '')

  • Una cadena faltante (mostrada como <missing>) a un arreglo de caracteres de 0 por 0

Si A es un arreglo de celdas vacío, B es un arreglo de celdas vacío. Un arreglo vacío tiene al menos una dimensión cuyo tamaño es 0.

Sugerencias

  • Para permitir que su código existente acepte arreglos de cadenas como entradas, añada una llamada a convertStringsToChars al principio del código.

    Por ejemplo, si ha definido una función myFunc que acepta tres argumentos de entrada, procese las tres entradas mediante convertStringsToChars. No modifique el resto del código.

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

    En este ejemplo, los argumentos de salida [a,b,c] sobrescriben los argumentos de entrada. Si algún argumento de entrada no es un arreglo de cadenas, no se modifica.

    Si myFunc acepta un número variable de argumentos de entrada, procesa todos los argumentos especificados por varargin.

    function y = myFunc(varargin)
        [varargin{:}] = convertStringsToChars(varargin{:});
        ...
  • La función convertStringsToChars es más eficaz cuando convierte un argumento de entrada. Si el rendimiento le preocupa, llame a convertStringsToChars en un argumento de entrada cada vez, en lugar de llamarlo una sola vez en varias entradas.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Entorno basado en subprocesos
Ejecute código en segundo plano con MATLAB® backgroundPool o acelere código con Parallel Computing Toolbox™ ThreadPool.

Historial de versiones

Introducido en R2017b