Formato de los campos de salida, especificados mediante operadores de formato. formatSpec
también puede incluir texto normal y caracteres especiales.
formatSpec
puede ser un vector de caracteres entre comillas simples o, a partir de la versión R2016b, un escalar de cadena.
Operador de formato
Un operador de formato comienza por un signo de porcentaje, %
, y termina por un carácter de conversión. Se requiere el carácter de conversión. Opcionalmente, puede especificar operadores de identificador, indicadores, ancho de campo, precisión y de subtipo entre %
y el carácter de conversión. (Los espacios no son válidos entre los operadores y se muestran aquí solo con fines de legibilidad).
Carácter de conversión
Esta tabla muestra los caracteres de conversión para formatear datos numéricos y 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), letras en minúscula a –f |
%X
| Igual que %x , letras en mayúscula A –F |
Número en punto flotante | %f
| Notación en punto fijo (utilice un operador de precisión para especificar el número de dígitos después del punto decimal). |
%e
| Notación exponencial, como 3.141593e+00 (utilice un operador de precisión para especificar el número de dígitos después del punto decimal). |
%E
| Igual que %e , pero en mayúsculas, como 3.141593E+00 (utilice un operador de precisión para especificar el número de dígitos después del punto decimal). |
%g
| El más compacto entre %e y %f , sin ceros finales (utilice un operador de precisión para especificar el número de dígitos significativos.) |
%G
| El más compacto entre %E y %f , sin ceros finales (utilice 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 array de cadenas. El tipo del texto de salida es el mismo que el de formatSpec . |
Operadores opcionales
Los operadores opcionales de identificador, indicadores, ancho de campo, precisión y subtipo definen aún más el formato del texto de salida.
Identificador
Orden para procesar los argumentos de entrada de la función. Utilice la sintaxis n
$
, donde n
representa las posiciones de los otros argumentos de entrada en la llamada a la función.
Ejemplo: ('%3$s %2$s
%1$s %2$s','A','B','C')
imprime los argumentos de entrada 'A'
, 'B'
, 'C'
como sigue: C B A B
.
Nota: Si un argumento de entrada es un array, no puede utilizar identificadores para especificar elementos de array concretos a partir de ese argumento de entrada.
Indicadores
'–'
| Justificación a la izquierda.
Ejemplo: %-5.2f
Ejemplo: %-10s |
'+'
| Imprimir siempre un carácter de signo (+ o –) para cualquier valor numérico.
Ejemplo: %+5.2f
Justificación a la derecha del texto.
Ejemplo: %+10s |
' '
| Insertar un espacio antes del valor.
Ejemplo: % 5.2f |
'0'
| Rellenar hasta el ancho del campo con ceros antes del valor.
Ejemplo: %05.2f |
'#'
| Modificar las conversiones numéricas seleccionadas: Para %o , %x o %X , usar el prefijo 0 , 0x o 0X . Para %f , %e o %E , usar el punto decimal aunque la precisión sea 0. Para %g o %G , no eliminar los ceros finales ni el punto decimal.
Ejemplo: %#5.0f |
Ancho de campo
Número mínimo de caracteres que se imprimirán. El operador de ancho de campo puede ser un número o un asterisco (*
) para hacer referencia a un argumento de entrada.
Ejemplo: Los argumentos de entrada ('%12d',intmax)
son equivalentes a ('%*d', 12, intmax)
.
La función se rellena hasta el ancho del campo con espacios antes del valor a menos que los indicadores especifiquen lo contrario.
Precisión
Para %f , %e o %E | Número de dígitos a la derecha del punto 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' |
El operador de precisión puede ser un número o un asterisco (*
) para hacer referencia a un argumento.
Ejemplo: Los argumentos de entrada ('%6.4f',
pi)
son equivalentes a ('%*.*f', 6, 4, pi)
.
Nota
Si especifica un operador de precisión para valores en punto flotante que exceda la precisión del tipo de datos numéricos de entrada, los resultados podrían no hacer coincidir los valores de entrada con la precisión especificada. El resultado depende del hardware y del sistema operativo de su ordenador.
Subtipos
Puede utilizar un operador de subtipo para imprimir un valor en punto flotante como 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 en punto flotante | %bx o %bX
%bo
%bu
| Hexadecimal de doble precisión, octal o valor decimal
Ejemplo: %bx imprime pi como 400921fb54442d18 |
%tx o %tX
%to
%tu
| Hexadecimal de precisión simple, octal o valor decimal
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 signo de porcentaje, %
, o después de un carácter de conversión. El texto puede ser:
Comportamiento notable de las conversiones con los operadores de formato
Las conversiones numéricas solo imprimen el componente real de números complejos.
Si especifica una conversión que no se ajusta a los datos, como una conversión de texto para un valor numérico, MATLAB reemplaza la conversión especificada y utiliza %e
.
Ejemplo: '%s'
convierte pi
en 3.141593e+00
.
Si se aplica una conversión de texto (ya sea %c
o %s
) a valores enteros, MATLAB convierte los valores que corresponden a códigos de caracteres válidos en caracteres.
Ejemplo: '%s'
convierte [65
66 67]
en ABC
.
Tipos de datos: char
| string