Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

num2str

Convertir números en un arreglo de caracteres

Descripción

Nota

Se recomienda string en lugar de num2str para combinar escalares numéricos con texto. Utilice el operador + para combinar cadenas y valores numéricos a fin de mejorar la legibilidad. Para obtener más información, consulte Funcionalidad alternativa.

s = num2str(A) convierte un arreglo numérico en un arreglo de caracteres que representa los números. El formato de salida depende de las magnitudes de los valores originales. num2str es útil para etiquetar y titular gráficas con valores numéricos.

ejemplo

s = num2str(A,precision) devuelve un arreglo de caracteres que representa los números con el número máximo de dígitos significativos que especifica precision.

ejemplo

s = num2str(A,formatSpec) aplica un formato que especifica formatSpec a todos los elementos de A.

Nota

Si se especifica un formato, s no incluirá espacios entre los elementos de A. Para incluir espacios, añada uno al formato.

ejemplo

Ejemplos

contraer todo

Convierta los valores de punto flotante que devuelven pi y eps a vectores de caracteres.

s = num2str(pi)
s = 
'3.1416'
s = num2str(eps)
s = 
'2.2204e-16'

Especifique el número máximo de dígitos significativos para valores de punto flotante.

rng('default')
A = randn([2,2]);
s = num2str(A,3)
s = 2x15 char array
    '0.538     -2.26'
    ' 1.83     0.862'

Muestre pi como número de punto flotante con una precisión especificada.

formatSpec = '%.2f';
s = num2str(pi,formatSpec)
s = 
'3.14'

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como arreglo numérico.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Soporte de números complejos:

Número máximo de dígitos significativos en la cadena de salida, especificado como entero positivo.

Nota

Si especifica que precision supere la precisión del tipo de datos de punto flotante de entrada, puede que los resultados no coincidan con los valores de entrada de la precisión que especificó. El resultado depende del hardware y el sistema operativo del ordenador.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Formato de los campos de salida, especificado con operadores de formato. formatSpec también puede incluir texto normal y caracteres especiales.

Si formatSpec incluye texto literal que representa caracteres de escape, como \n, num2str traduce los caracteres de escape.

formatSpec puede ser un vector de caracteres en comillas simples o un escalar de cadena.

Operador de formato

Los operadores de formato comienzan por el símbolo de porcentaje, %, y terminan con un carácter de conversión. El carácter de conversión es obligatorio. De forma opcional, puede especificar operadores de identificador, indicador, anchura de campo y subtipo entre % y el carácter de conversión (no se permiten espacios entre operadores; solo se muestran aquí por motivos de legibilidad).

Schematic of formatting operator characters.

Carácter de conversión

Esta tabla muestra los caracteres de conversión a formato numérico y los datos de caracteres como texto.

Tipo de valorConversiónDetalles

Entero, con signo

%d o %i

Base 10

Entero, sin signo

%u

Base 10

%o

Base 8 (octal)

%x

Base 16 (hexadecimal), minúsculas a-f

%X

Igual que %x, mayúsculas A-F

Número de punto flotante

%f

Notación de punto fijo (use un operador de precisión para especificar el número de dígitos después del separador decimal).

%e

Notación exponencial, como 3.141593e+00 (use un operador de precisión para especificar el número de dígitos después del separador decimal).

%E

Igual que %e pero en mayúsculas, como 3.141593E+00 (use un operador de precisión para especificar el número de dígitos después del separador decimal).

%g

%e o %f, lo que sea más compacto, sin ceros finales (use un operador de precisión para especificar el número de dígitos significativos).

%G

%E o %f, lo que sea más compacto, sin ceros finales (use un operador de precisión para especificar el número de dígitos significativos).

Caracteres o cadenas

%c

Carácter único

%s

Vector de caracteres o arreglo de cadena. El tipo de texto de salida es el mismo que el tipo de formatSpec.

Operadores opcionales

Los operadores opcionales de identificador, indicador, anchura de campo y subtipo contribuyen a definir el formato del texto de salida.

  • Identificador

    Nota: A diferencia de la función sprintf, num2str no es compatible con identificadores.

  • Indicadores

    '–'

    Justifica a la izquierda.
    Ejemplo: %-5.2f
    Ejemplo: %-10s

    '+'

    Imprime siempre un carácter de símbolo (+ o –) para cualquier valor numérico.
    Ejemplo: %+5.2f
    Justifica el texto a la derecha.
    Ejemplo: %+10s

    ' '

    Inserta un espacio antes del valor.
    Ejemplo: % 5.2f

    '0'

    Rellena la anchura del campo con ceros antes del valor.
    Ejemplo: %05.2f

    '#'

    Modifica las conversiones numéricas seleccionadas:

    • En el caso de %o, %x o %X, imprime el prefijo 0, 0x o 0X.

    • En el caso de %f, %e o %E, imprime el separador decimal incluso si la precisión es 0.

    • En el caso de %g o %G, no elimina los ceros finales ni el separador decimal.

    Ejemplo: %#5.0f

  • Anchura de campo

    Número mínimo de caracteres que imprimir.

    Ejemplo: '%5d' imprime intmax como 2147483647 porque el valor que devuelve intmax supera el número mínimo de caracteres que imprimir.

    Si el número de caracteres que imprimir es inferior a la anchura del campo, la función compose rellena la anchura del campo con espacios antes del valor, a menos que los indicadores especifiquen lo contrario.

    Sin embargo, la función num2str no rellena la anchura del campo con espacios.

  • Precisión

    Número de dígitos que imprimir.

    Para %f, %e o %E

    Número de dígitos a la derecha del separador decimal
    Ejemplo: '%.4f' imprime pi como '3.1416'

    Para %g o %G

    Número de dígitos significativos
    Ejemplo: '%.4g' imprime pi como '3.142'

    Ejemplo: '%6.4f' imprime pi como '3.1416'.

    Nota

    Si especifica un operador de precisión para valores de punto flotante que supera la precisión del tipo de datos numéricos de entrada, es posible que los resultados no coincidan con los valores de entrada de la precisión que haya especificado. El resultado depende del hardware y el sistema operativo del ordenador.

  • Subtipos

    Puede utilizar un operador de subtipo para imprimir un valor de punto flotante con su valor octal, decimal o hexadecimal. El operador de subtipo precede inmediatamente al carácter de conversión. Esta tabla muestra las conversiones que pueden utilizar subtipos.

    Tipo de valor de entrada

    Subtipo y carácter de conversión

    Tipo de valor de salida

    Número de punto flotante

    %bx o %bX
    %bo
    %bu

    Valor hexadecimal, octal o decimal de doble precisión
    Ejemplo: %bx imprime pi como 400921fb54442d18

    %tx o %tX
    %to
    %tu

    Valor hexadecimal, octal o decimal de precisión simple
    Ejemplo: %tx imprime pi como 40490fdb

Texto antes o después de los operadores de formato

formatSpec también puede incluir texto adicional antes de un símbolo de porcentaje, %, o después de un carácter de conversión. El texto puede ser:

  • Texto normal que imprimir.

  • Caracteres especiales que no se pueden introducir como texto normal. Esta tabla muestra cómo representar caracteres especiales en formatSpec.

    Carácter especial

    Representación

    Comilla simple

    ''

    Carácter de porcentaje

    %%

    Barra invertida

    \\

    Alarma

    \a

    Retroceso

    \b

    Salto de impresión

    \f

    Nueva línea

    \n

    Retorno de carro

    \r

    Tabulación horizontal

    \t

    Tabulación vertical

    \v

    Carácter cuyo valor numérico Unicode® se puede representar mediante el número hexadecimal, N

    \xN

    Ejemplo: num2str('\x5A') devuelve 'Z'

    Carácter cuyo valor numérico Unicode se puede representar mediante el número octal, N

    \N

    Ejemplo: num2str('\132') devuelve 'Z'

Comportamiento notable de las conversiones con operadores de formato

  • Las conversiones numéricas solo imprimen el componente real de números complejos.

  • Si especifica una conversión que no se corresponde con los datos, como una conversión de texto para un valor numérico, MATLAB® anula la conversión especificada y utiliza %e.

    Ejemplo: '%s' convierte pi a 3.141593e+00.

  • Si aplica una conversión de texto (%c o %s) a valores enteros, MATLAB convierte los valores que se corresponden con códigos de caracteres válidos a caracteres.

    Ejemplo: '%s' convierte [65 66 67] a ABC.

Argumentos de salida

contraer todo

Representación textual del arreglo de entrada, devuelto como arreglo de caracteres.

Sugerencias

  • num2str no acepta identificadores de posición en el argumento de entrada formatSpec. Por ejemplo, num2str([14 15],'%2$X %1$o) devuelve un error.

    Los identificadores de posición especifican el orden en el que el operador de formato procesa los argumentos de entrada de la función, no los elementos de un arreglo de entrada. Al llamar a num2str solo hay un argumento de entrada con números que convertir.

  • Si especifica un operador de formato no válido o un carácter especial, num2str imprime todo el texto hasta el operador o el carácter no válido y descarta el resto.

    Ejemplo: Si formatSpec es 'value = %z', num2str imprime 'value =' porque %z no es un operador de formato.

    Ejemplo: Si formatSpec es 'character \x99999 = %s', num2str imprime 'character' porque \x99999 no es un carácter especial válido.

Algoritmos

num2str recorta todos los espacios delanteros de un arreglo de caracteres, incluso cuando formatSpec incluye un indicador de caracteres de espacios. Por ejemplo, num2str(42.67,'% 10.2f') devuelve un arreglo de caracteres de 1 por 5 '42.67'.

Funcionalidad alternativa

Actualice el código que emplea num2str para combinar escalares numéricos con texto para utilizar string en su lugar. Los valores numéricos se pueden combinar con cadenas utilizando el operador +. Por ejemplo:

No recomendadoRecomendado
newstr = ['The value is ' num2str(4.5)]
newstr =

    'The value is 4.5'
newstr = "The value is " + 4.5
newstr =

    "The value is 4.5"

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | | | |