Formato de texto en MATLAB

En el mundo real, los datos pueden ser de cualquier forma. Estos datos pueden ser binarios, numéricos, de texto, de array, etc. Y estos datos se pueden convertir en texto. En Matlab, el texto se puede formatear usando un operador de formato junto con funciones de formato como sprintf, numstr, fprintf, compose . Estas funciones/operadores controlan la notación del texto, el dígito significativo, la alineación del texto, etc. 

Text Formatting in MATLAB

En este artículo, veremos cómo puede formatear el texto en MATLAB.

Un operador de formato tiene seis criterios que incluyen un identificador numérico, banderas, ancho de campo, precisión, subtipo y un carácter de conversión. En la figura hay espacio entre el operador, pero al escribir el código, asegúrese de que no se permitan caracteres de espacio en el operador. De los seis campos, el carácter de conversión es solo el campo obligatorio, lo que significa que no se puede ignorar al formatear texto en Matlab. Y este carácter de conversión debe comenzar con un signo de % por ciento.

Campos del operador de formato:

Carácter de conversión: al igual que la programación en C, Matlab requiere un especificador de formato para especificar la notación de la salida. El especificador de formato y el significado se dan a continuación:

S. No. Especificador de formato Sentido
1. C Carácter único (char)
2. d Notación decimal (con signo)
3. tu Notación decimal (sin signo).
4. mi Notación exponencial (usando una e minúscula, como en 3.1415e+00).
5. mi Notación exponencial (usando una E mayúscula, como en 3.1415E+00).
6. F Notación de punto fijo
7. X Notación hexadecimal (sin signo, usando letras minúsculas a–f).
8. gramo El más compacto de %e o %f
9. GRAMO Similar a %g
10 o Notación octal (sin signo).
11 s array de strings

Ejemplo 1:

Matlab

% MATLAB program for sprintf()
A = 57*ones(1,5);
txt = sprintf('%d %f %o %X %u', A)

Producción:

txt = 57 57.00000 71 39 57

Subtipo: antes del carácter de conversión, el subtipo es el campo representado por un solo carácter alfabético. Tiene principalmente dos tipos:

S. No. especificador de subtipo  Descripción
1. t Los datos de entrada son valores de punto flotante de precisión simple en lugar de enteros sin signo.
2. b Los datos de entrada son valores de punto flotante de doble precisión en lugar de enteros sin signo.

Ejemplo 2:

Matlab

% MATLAB code for subtype
subtype_ = 19; 
final_sub = sprintf('%tu',subtype_)

Producción:

final_sub = 1100480512

Precisión: el siguiente campo de operadores de formato es un campo de precisión. Por lo general, se denota con notación de puntos, es un número entero no negativo que sigue inmediatamente a un punto.

Ejemplo 3:

Matlab

% MATLAB code for check Precision
check_decimal = sprintf('%g   %.2g   %f   %.2f', [1 2 3 4])

Producción:

check_decimal = 1 2 3.000000 4.00

Tomamos dos especificadores de formato g y 2 f y podemos ver lo que hace una precisión con el punto decimal. 

Ancho de campo: un ancho de campo es un número entero no negativo que especifica el número de dígitos o caracteres en la salida. Especifique diferentes anchos de campo. Para mostrar el ancho de cada salida, use el botón | personaje. Por ejemplo, en el operador %5.1f, el ancho de campo es 5 y la precisión de 0,1.

Ejemplo 4:

Matlab

% MATLAB code for check Field Width
text = sprintf('|%e|%6e|%f|%12f|',[0.455312 12345 2223 0.111123])

Producción:

text = '|4.553120e-01|1.2345e+04|2223000000|      0.111123|'

Banderas: El campo de banderas es opcional. Si se usa, controla principalmente el formato de la salida. Además, se utiliza para describir el relleno, la alineación del texto y el espaciado.

S. No. Carbonizarse Sentido Ejemplo
1. Justificar a la izquierda el texto de salida %-7.4d
2. + Justificar a la derecha el texto de salida %+7.4d
3. 0 Relleno cero %06.3f
4. #

Conversiones numéricas:

  • Para %o, %x o %X, imprima el prefijo 0, 0x o 0X.
  • Para %f, %e o %E, se imprime un punto decimal incluso cuando la precisión es 0.
  • Para %g o %G, no elimine los ceros finales ni los puntos decimales.
%#4.0f
5. Espacio Inserte un espacio antes del valor. % 4.2f

Identificador: los identificadores se declaran después del % y antes de los caracteres especiales $. Es un valor entero para producir la salida en un orden específico. sprintf por defecto imprime en orden secuencial, usando Identifier podemos organizar la salida en el orden personalizado.

Ejemplo 5:

Matlab

% MATLAB code for identifier
sprintf('%3$s %2$s %1$s',...
        'Geeks','Premier','League')

Producción:

ans = 'League Premier Geeks'

Formateo de texto con componer():

La función de composición se utiliza para formatear los datos de la array en varias strings. 

Sintaxis:

var_name = compose(format_specifier,var_name)
str = compose(format_specifier,A,b,...,N)

Ejemplo: 

Matlab

% MATLAB code for compose()
compose_str1 = compose("%.5f",45.566)
compose_str2 = compose("%.1f",45.566)

Producción:

"compose_str1 = 45.56600"
"compose_str1 = 45.6"

Formatear texto con num2str():

La función num2str se usa para formatear el número en una array de caracteres.

Sintaxis:

new_var = num2str(int_var)
new_var = num2str(int_var,precision)
new_var = num2str(int_var,format_specifier)

Ejemplo:

Matlab

% MATLAB code for num2str()
num = 92;
chr = num2str(num)

Producción:

chr = '92'

Publicación traducida automáticamente

Artículo escrito por jaintarun y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *