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).
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 valor | Conversión | Detalles |
---|
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:
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
.