Está en la página 1de 14

MÓDULO

6 SOBRE
PROGRAMACIÓN MATLAB

1
6
OBJETIVOS
CONTROL DE ENTRADA / SALIDA

Al terminar este módulo el estudiante estará en condiciones de:


 Planear y controlar en forma exacta cómo y donde visualizar los resultados ya sea en la
pantalla o en el papel de la impresora.
 Utilizar los descriptores de edición d, e, i, f, g, s para visualizar resultados.
 Utilizar las funciones input, fprintf, sprintf y disp para introducir datos desde el
teclado y visualizar los resultados.
 Distinguir las partes que conforman los descriptores de edición: Conversión de
caracteres, número de cifras decimales, precisión y ancho de campo.
 Utilizar la función format para controlar el formato de salida de los valores numéricos
en la linea de comando de Matlab.

INTRODUCCIÓN
En el módulo 5 se estudia la interfaz grafica de usuario de Matlab, donde se programa con
objetos y la diferencia radica en que los programas se realizan con ayuda de unos
subprogramas que tiene incorporado Matlab. Este módulo enseña a utilizar las funciones
más importantes para introducir y visualizar datos. Las instrucciones de entrada/salida que
se analizan en el módulo 1 son las proposiciones input / disp con lista dirigida. Estas
brindan un procedimiento rápido y sencillo para la entrada y salida de datos numéricos,
pero tienen desventajas. La proposición input con lista dirigida suministra un medio
conveniente para la entrada de datos numéricos desde el teclado; sin embargo, puede
necesitarse un modo de entrada más estructurado cuando se lee de un archivo de datos. La
proposición disp no le permite al programador escoger el formato de salida. El uso de la
proposición disp para escribir encabezados a resultados numéricos es poco elegante e
ineficiente. Gracias a las proposiciones fprintf y sprintf son posibles una variedad de
arreglos de datos y el programador puede planear y controlar en forma exacta cómo y
dónde visualizar los resultados ya sea en la pantalla o en el papel de la impresora. En este
módulo, a estas proposiciones se les llama: proposiciones input / fprintf con formato
dirigido.

PROPOSICIÓN input CON FORMATO DIRIGIDO


La proposición ejecutable input, se utiliza con una proposición fprintf y su fórmula
general es:
Nombre = input ( ′ Entrada = ′ )
Donde: Nombre representa el nombre de la variable.
input representa el nombre de la proposición.
′ Entrada = ′ representa el nombre de la variable (o variables) a la cual se asigna el valor
leido
Universidad del Atlántico-Facultad de Ingeniería 1
Un ejemplo de la proposición input con formato dirigido es:
EJEMPLO 6.1 USO DE LA PROPOSICIÓN input CON FORMATO DIRIGIDO
Este programa calcula el volumen de la esfera y el valor del radio se suministra desde el
teclado.
% ************* Programa 6.1 ***************
clear all,clc
% Introduzca el valor del radio de la esfera
Radio= input( ′ Introduzca el radio de la esfera = ′ ) ;
% Escriba la fórmula del volumen de la rsfera
Vol = (3/4)*pi*Radio.^3;
% Salida del resultado
fprintf( ′ \ n Radio = %2i Volumen = %3.3f \n ′ ,Radio,Vol)

La salida del programa es:


Introduzca el radio de la esfera = 5
Radio = 5 Volumen = 523.599

Esto significa que se suministra desde el teclado un valor real y se asigna al nombre de la
variable real Radio. El programador debe arreglar los datos según el descriptor de edición
%2i de la proposición asociada fprintf. El valor que se asigna a Radio debe introducirse
desde el teclado en forma entera real sin cifras decimales de precisión justificada a la
derecha en la columna de un campo de dos, i indica un número entero. El descriptor de
edición %3.3f para la salida del valor del volumen de la esfera,tiene un ancho de campo de
3 con tres cifras decimales despúes de la coma y f indica un número real,de forma decimal
(sin exponente).

La forma general de la proposición fprintf es:

Apóstrofos

fprintf( ′ \n % wi % w.bf % w.bg % w.be … \n′ ,N,M,T )

Función Salida de Descriptores de edición Salida de Variables de


resultados resultado salida,separadas
saltando una en una misma por comas
línea línea.

Donde: w establece el ancho del campo.


b especifica el núnero de dígitos después del punto decimal.
i indica un número entero real.
f indica un número entero real de forma decimal ( sin exponente).
g indica las dos formas e y f.
e indica una forma exponencial.
. indica el punto decimal.

DESCRIPTOR DE EDICION i
Universidad del Atlántico-Facultad de Ingeniería 2
El descriptor de edición i se utiliza para especificar una constante entera que se
proporciona de un archivo de datos o desde el teclado y la asigna al nombre de la variable
entera de la proposición input asociada.
La forma general del descriptor de edición i es:
% wi
Donde: w
establece el ancho del campo(el número de columnas de las cuales
se lee el valor).
i indica una forma de tipo entero.
Un ejemplo del uso del descriptor de edición i es:
>> A=23;
>> fprintf(′ A=%2i \n′ ,A)
La salida es:
A= 23
Un espacio en blanco delante del descriptor de edición se interpreta como una columna
vacía a la salida de los resultados. Por ejemplo, si escribe ahora :
>> fprintf(′ A=%2i \n ′ ,A)
La salida es:
A=23, observe el espacio en blanco al lado izquierdo de A.
Por tanto es importante que las constantes enteras en un registro se justifiquen a la derecha
dentro de sus campos. Por ejemplo,si el valor entero 23, se estableció para leerlo con un
descriptor de edición %5i, se coloca en la cuarta columna del campo de cinco columnas,
anteponiendose tres columnas vacias, el valor que se asigna al nombre de la variable es 23.
>> fprintf(′ A=%5i \n′ ,A)
La salida es:
A= 23, observe el espacio en blanco después del signo igual.
El signo menos hace parte del valor del dato. El signo algebraico ocupa una columna que
está implícito en el ancho del campo. Por ejemplo, si escribe ahora :
>> B=-23;
>> fprintf(′ B=%2i\n′ ,B)
La salida es:
B=-23, observe que reserva una columna para el signo.

DESCRIPTOR DE EDICION f
El descriptor de edición f se utiliza para especificar un número entero real de forma
decimal(sin exponente) que se proporciona de un archivo de datos o desde el teclado y la
asigna al nombre de la variable entera de la proposición input asociada.
La forma general del descriptor de edición f es:
% w.bf
Donde: w establece el ancho del campo.
b especifica el número de dígitos que siguen al punto decimal(cifras decimales).
f indica un número de tipo real de forma decimal(sin exponente).
. indica el punto decimal.

Ejemplos del uso del descriptor de edición f es:

Universidad del Atlántico-Facultad de Ingeniería 3


Escriba desde la línea de comando de Matlab:
>> B= 7.5;
>> fprintf(′ B=%2.1f \n′ ,B)
La salida es:
B=7.5
>>fprintf(′ B=% 2.1f \n′ ,B)% observe el espacio después del caracter %
La salida es:
B= 7.5,observe el espacio después del signo igual.

Un descriptor de edición %2.1f que se emplea con una proposición fprintf, significa que la
constante correspondiente en el registro debe estar en modo decimal real ( sin exponente) y
que el nombre de la variable en la lista fprintf debe ser real. El valor se lee de las 2
columnas del registro. El número 2 especifica el número de columnas (ancho del campo)
cubierto por el descriptor. Hay un lugar decimal (.1). El punto decimal No necesita
incluirse en el valor que proporciona ya que el descriptor de edición en la especificación
fprintf (%2.1f) coloca el punto decimal de modo que el ultimo dígito del campo de 2
columnas esté a la derecha del punto decimal.
Un punto decimal ocupa una columna y debe incluirse en el ancho del campo, reduciendo
asi en uno el número de dígitos que pueden colocarse en un campo especifico. Los signos
algebraicos positivos y negativos están implícito en el ancho del campo del descriptor de
edición. Es buena práctica especificar para todos los descriptores de edición un ancho del
campo mayor en dos lugares del mínimo requerido, que suministren espacios que separen
valores sucesivos.
Si el descriptor de edición f no proporciona los espacios para el número de cifras decimales
y el número de caracteres en el valor ( que incluye el punto decimal y el signo algebraico
de una cifra significativa), se presenta un listado de valores que no se distinguen unos de
otros. Estos casos se trataran más adelante.
Los siguientes ejemplos ilustran el uso del descriptor de edición f:
Escriba desde la línea de comando de Matlab:
Caso 1
>> fprintf('%7.6f\n',pi) % la salida es:
3.141593
Caso 2
>> fprintf('%6.4f\n',pi) % la salida es:
3.1416
Caso 3
>> fprintf('%10.5f\n',pi) % la salida es:
3.14159

En el primer caso el número pi se visualiza ocupando 7 columnas justificadas a la derecha,


el punto decimal no entra en el conteo y tiene seis decimales. En el segundo caso el número
pi se visualiza ocupando cinco columnas justificadas a la derecha y tiene cuatro decimales,
redondea la última cifra. En el tercer caso el número pi se visualiza ocupando 7 columnas
justificadas a la derecha, dejando tres columnas vacias antes del número y tiene cinco
decimales.
El siguiente ejemplo utiliza números reales positivos, negativos y exponenciales:
Escriba desde la línea de comando de Matlab:
>> X=1234.567;Y=-0.012345678;Z=0.1234567e-2;

Universidad del Atlántico-Facultad de Ingeniería 4


>> fprintf(′ %13.7f %13.7f %13.7f\n′ ,X,Y,Z)
La salida es:
1234.5670000 -0.0123457 0.0012346

EJEMPLO 6.2 ENTRADA DE DATOS DESDE UN VECTOR COLUMNA.


Este programa calcula el área y la longitud de la circunferencia para valores del radio dado
en forma de un vector columna.
Los valores del radio son 10, 20, 32, 40 y 75

% ************ Programa 6.2**************


clear all
clc
Radio=[10 20 32 40 75]';
for N=1:5
Circun=2*pi*Radio;
Area= pi*Radio.^2;
fprintf('\n Cuando el radio=%2i la circunfrencia es
%7.3f\n',Radio(N),Circun(N))
fprintf(' y el area es %7.3f\n',Area(N))
end

La salida del programa es:


Cuando el radio=10 la circunfrencia es 62.832
y el area es 314.159

Cuando el radio=20 la circunfrencia es 125.664


y el area es 1256.637

Cuando el radio=32 la circunfrencia es 201.062


y el area es 3216.991

Cuando el radio=40 la circunfrencia es 251.327


y el area es 5026.548

Cuando el radio=75 la circunfrencia es 471.239


y el area es 17671.459

EJEMPLO 6.3 EL CARÁCTER \n ENTRE DESCRIPTORES DE EDICIÓN


Calcula el área del círculo y los datos aparecen en el siguiente renglón con sus respectivos
encabezados.

% ************* Programa 6.3 ********************


clear all,clc
Diam=4.0;
Area=pi*(Diam/2)^2;
fprintf('Diámetro(cm) Area(cm^2) \n %i %10f \n',Diam,Area)

La salida del programa es:


Diámetro(cm) Area(cm^2)
4 12.5664

EJEMPLO 6.4 INTRODUCCIÓN DE DATOS DESDE UN VECTOR FILA


La fórmula para el área de un triángulo de lados a, b y c es:
Universidad del Atlántico-Facultad de Ingeniería 5
Area = S ( S − a )( S − b )( S − c )
Donde S = ( a +b + c) / 2
Calcule el área del triángulo para a=2, b=3 y c =4

Introduzca los valores en forma vectorial: [2,3,4]


El siguiente programa realiza los cálculos:

% ************* Programa 6.4 ********************


%Este programa calcula el área de un triángulo de
%lados A, B y C
clear all
clc
L=input('Introduzca los lados=');
s= (L(1) + L(2) + L(3))/2;
Eq=@(s)(s*(s-L(1))*(s-L(2))*(s-L(3)))^(1/2);
Argum=(s*(s-L(1))*(s-L(2))*(s-L(3)));
if (Argum)<= 0
disp('El triangulo es imposible')
else
Area=Eq(s);
fprintf('El área es de %6.5f\n',Area)
end
La salida del programa es:
Introduzca los lados=[2,3,4]
El área es de 2.9047

Se utiliza la estructura de bloque if …else … end, de forma tal que cuando se introduzcan
algunos valores de los lados que hacen el argumento Argum adquiera un valor negativo o
cero, aparece el mensaje ‘El triángulo es imposible’. Los valores de los lados se introducen
desde el teclado en forma de un vector fila entre corchetes ([2,3,4]), separados por comas o
dejando un espacio en blanco entre ellos.

DESCRIPTOR DE EDICION g
El descriptor de edición g se utiliza para especificar un número entero real de notación
exponencial y en forma decimal (sin exponente), que se proporciona de un archivo de
datos o desde el teclado y la asigna al nombre de la variable entera de la proposición input
asociada. En el formato g, el número a la derecha del punto decimal, especifica el número
total de dígitos que son visualizados. El descriptor de edición g produce un campo tanto
para los descriptores de edición f o e dependiendo del valor asignado.
La forma general del descriptor de edición g es:

%w.bg
Donde: w establece el ancho del campo.
b especifica el número total de digítos visualizados.
g indica el modo de conversión de caracteres e y f
. indica el punto decimal.

Los siguientes ejemplos ilustran el uso del descriptor de edición g:


Escriba desde la línea de comando de Matlab:
>> X=1234.567;Y=-0.012345678;Z=0.1234567e-2;
Universidad del Atlántico-Facultad de Ingeniería 6
>> fprintf(ʹ%13.7g %13.7g %13.7g\nʹ,X,Y,Z)
La salida es:
1234.567 -0.01234568 0.001234567
La salida con el descriptor de edición g, presenta los resultados con mayor precisión, que
cuando se usa el descriptor de edición f.
>> fprintf(′ X=%-13.7g Y=%-13.7g Z=%-13.7g\n′ ,X,Y,Z)
La salida es:
X=1234.567 Y=-0.01234568 Z=0.001234567
En este ejemplo se coloca el signo (-) en el descriptor de edición g, para que justifique los
valores a la izquierda.
>> fprintf(′ A=%.7g \n′ ,pi)
La salida es:
A=3.141593
En éste ejemplo observe que el número total de digítos son 7 que corresponde al
especificado en el descriptor de edición g, sin incluir el punto decimal.

EJEMPLO 6.5 USO DE input CON LA PROPOSICIÓN for …end


Este programa explica detalladamente cada una de la especificaciones más comunes que se
utilizan para la salida de los resultados numéricos de precisión sencilla..
El valor asignado para X es 0.1234567.
% ************programa 6.5 ****************
clear all,clc
X= input(′ Introduzca un numero real=′ );
for i=1:4
disp('***************************************************')
fprintf(′ El valor:%10.7g se imprime como:\n′ ,X)
fprintf(′ %17.7g cuando la especificación es %%17.7g\n′ ,X)
fprintf(′ %17.5g cuando la especificación es %%17.5g\n′ ,X)
fprintf(′ %17.3g cuando la especificación es %%17.3g\n′ ,X)
fprintf(′ %17.1g cuando la especificación es %%17.1g\n′ ,X)
X=100*X;
end
La salida del programa es:
Introduzca un numero real=0.1234567
**************************************************
El valor: 0.1234567 se imprime como:
0.1234567 cuando la especificación es %17.7g
0.12346 cuando la especificación es %17.5g
0.123 cuando la especificación es %17.3g
0.1 cuando la especificación es %17.1g
**************************************************
El valor: 12.34567 se imprime como:
12.34567 cuando la especificación es %17.7g
12.346 cuando la especificación es %17.5g
12.3 cuando la especificación es %17.3g
1e+001 cuando la especificación es %17.1g
**************************************************
El valor: 1234.567 se imprime como:
1234.567 cuando la especificación es %17.7g
1234.6 cuando la especificación es %17.5g
1.23e+003 cuando la especificación es %17.3g
1e+003 cuando la especificación es %17.1g
**************************************************
Universidad del Atlántico-Facultad de Ingeniería 7
El valor: 123456.7 se imprime como:
123456.7 cuando la especificación es %17.7g
1.2346e+005 cuando la especificación es %17.5g
1.23e+005 cuando la especificación es %17.3g
1e+005 cuando la especificación es %17.1g
El siguiente programa es para la salida de resultados numéricos de doble precisión.
El valor asignado para X es 123456789.0
clear all
clc
X= input(′ Introduzca un numero real=′ );
for i=1:4
disp(′ **************************************************′ )
fprintf(′ El valor:%10.9g se imprime como:\n′ ,X)
fprintf(′ %20.9g cuando la especificación es %%20.9g\n′ ,X)
fprintf(′ %20.7g cuando la especificación es %%20.7g\n′ ,X)
fprintf(′ %20.5g cuando la especificación es %%20.5g\n′ ,X)
fprintf(′ %20.3g cuando la especificación es %%20.3g\n′ ,X)
X=100*X;
end
La salida del programa es:
Introduzca un numero real=123456789.0
**************************************************
El valor: 123456789 se imprime como:
123456789 cuando la especificación es %20.9g
1.234568e+008 cuando la especificación es %20.7g
1.2346e+008 cuando la especificación es %20.5g
1.23e+008 cuando la especificación es %20.3g
**************************************************
El valor:1.23456789e+010 se imprime como:
1.23456789e+010 cuando la especificación es %20.9g
1.234568e+010 cuando la especificación es %20.7g
1.2346e+010 cuando la especificación es %20.5g
1.23e+010 cuando la especificación es %20.3g
**************************************************
El valor:1.23456789e+012 se imprime como:
1.23456789e+012 cuando la especificación es %20.9g
1.234568e+012 cuando la especificación es %20.7g
1.2346e+012 cuando la especificación es %20.5g
1.23e+012 cuando la especificación es %20.3g
**************************************************
El valor:1.23456789e+014 se imprime como:
1.23456789e+014 cuando la especificación es %20.9g
1.234568e+014 cuando la especificación es %20.7g
1.2346e+014 cuando la especificación es %20.5g
1.23e+014 cuando la especificación es %20.3g
DESCRIPTOR DE EDICION e
El descriptor de edición e se utiliza para especificar la salida de un número entero real de
notación exponencial, que se proporciona de un archivo de datos o desde el teclado y la
asigna al nombre de la variable entera de la proposición input asociada. Cuando se
desconoce la magnitud del valor, puede ser ventajoso especificar la salida numérica con un
descriptor de edición e.
La forma general del descriptor de edición e es:

%w.be
Universidad del Atlántico-Facultad de Ingeniería 8
Donde: w establece el ancho del campo.
b especifica el número total de digítos después del punto decimal.
e indica el modo exponencial real.
. indica el punto decimal.

Los siguientes ejemplos ilustran el uso del descriptor de edición e:


Escriba desde la línea de comando de Matlab:
>> fprintf(′ %.e\n′ ,pi)
La salida es:
3e+000,observe que la salida registra un solo digito.
>> B=-0.0045678;
>> fprintf('A=%-0.5e \n',B)
La salida es:
A=-4.56780e-003,convierte el numero en forma exponencial.
La siguiente tabla muestra cómo pi se visualiza bajo una variedad de especificaciones de
descriptores de edición utilizando sprintf:

Especificación de edición La salida es:


̍
sprintf(%.0e,pi) 3e+00
̍
sprintf(%.1e,pi) 3.1e+00
̍
sprintf(%.5e,pi) 3.14159e+000
̍
sprintf(%.10e,pi) 3.1415926536e+000
sprintf(%.0f,pi)̍ 3
sprintf(%.5f,pi) ̍ 3.14159
sprintf(%.10f,pi) ̍ 3.1415926536
sprintf(%8.5g,pi) ̍ 3.1416
sprintf(%8.10g,pi) ̍ 3.141592654

La forma general de la proposición sprintf es:

Apóstrofos

sprintf( ′ \n % s % d % w.bg % w.bf %w.be \n′ ,ʹNʹ,M,T )

Función Salida de Descriptores de edición Salida de Variables de


resultados resultado salida,separadas
saltando una en una misma por comas
línea línea.

Universidad del Atlántico-Facultad de Ingeniería 9


Donde: w establece el ancho del campo.
b especifica el núnero de dígitos después del punto decimal.
s indica una cadena de caracteres.
d indica cualquier número dígito.
f indica un número entero real de forma decimal ( sin exponente).
g indica las dos formas e y f.
e indica una forma exponencial.
′ N′ indica la cadena de caracteres.
. indica el punto decimal.
DESCRIPTOR DE EDICION s
El descriptor de edición s se utiliza para anotar resultados numéricos a la salida con
información de carácter alfanuméricos u otros de caracteres constantes, que se proporciona
de un archivo de datos o desde el teclado y la asigna al nombre de la variable entera de la
proposición input asociada. La edición s de cadenas de caracteres consiste en encerrar la
lista de caracteres entre dos apóstrofos ( ′ ′ ).
La forma general del descriptor de edición s es:

%s
Donde: s especifica la cadena de caracteres alfanuméricos.

Los siguientes ejemplos ilustran el uso del descriptor de edición s:


Escriba en la línea de comando de Matlab:
>> sprintf('El precio de la %s en %d/%d/%d fue $%.2f','brea',7,1,2010,3.39)
La salida es:
ans =
El precio de la brea en 7/1/2010 fue $3.39
Los valores a la salida deben colocarse en el mismo orden secuencial de los descriptores de
edición en la cadena de caracteres. Cada valor a la salida corresponde a un descriptor de
edición en la cadena de función sprintf.

EJEMPLO 6.6 USO DE inputname CON LAS PROPOSICIONES disp y sprintf


Sea la función myfun con argumentos a y b. Se requiere que las proposiciones disp y sprintf
visualicen las dos cadenas de caracteres en pantalla a la salida. Se sumistran los valores de
a=10 y b=5 y el valor de y es calculado por el programa.
El siguiente programa ilustra el uso de la proposición inputname:
% ************ programa 6.6 ***************
function y = myfun(a,b)
disp(sprintf('Mi primera entrada es "%s".' ,inputname(1)))
disp(sprintf('Mi segunda entrada es "%s".',inputname(2)))
y = a+b;
Escriba en la linea de comando de MATLAB
>> a=10;b=5;
>> myfun(a,b)
La salida es:
Mi primera entrada es "a".
Mi segunda entrada es "b".
ans =
15
CARACTERES DE CONTROLES ESPECIALES
Universidad del Atlántico-Facultad de Ingeniería 10
Es una parte del texto de la cadena de caracteres, pero debido a que no pueden introducirse
como texto ordinario, requieren una secuencia de cadena de caracteres únicos para
representarlos. Use algunas de las siguientes secuencias de cadenas de caracteres para
insertar caracteres especiales a la salida :

Para insertar Use


Retroceso \b
Forma alimento \f
Nueva línea o en la misma línea \n
Retrono del carro \r
Desplazamiento horizontal \t
Barra inversa \ \\
El carácter % %%
Cualquier digíto numérico \d
El tabulador vertical \v
La alarma o carácter beep \a
El carácter escape \e
Cualquier carácter espacio en blanco, equivalente al conjunto \s
[\t\f\n\r]
El carácter con valor hexadecimal N \xN o \x{N}
Cualquier carácter simple ( incluyendo el espacio en blanco) .

El siguiente ejemplo ilustra el descriptor de edición \s de cadena de caracteres y el


descriptor de edición de cualquier número digíto \d y seis valores para intercambiarlos
secuencialmente en la cadena de caracteres:
>> S=sprintf(' %s =%d \n','A',479,'B',352,'C',650)
La salida es:
S =
A =479
B =352
C =650
Puede colocar valores de argumentos en la lista secuencial de argumentos( en el mismo
orden en que los descriptores de edición aparecen en la cadena) o por identificador
( agregando un número a cada uno de los descriptores de edición que identifique el valor
del argumento que reemplaza. Por defecto,MATLAB utiliza el orden secuencial.
Para especificar argumentos con identificador númerico, se agrega un entero positivo
seguido por un signo $ inmediatamente después del carácter % en el descriptor. Los
siguientes ejemplos ilustran su uso:
Ordenado secuencialmente:
>> s=sprintf('%s %s %s','Primero','Segundo','tercero')
La salida es:
s =
Primero Segundo tercero

Ordenado por identificador:


>> s=sprintf('%3$s %2$s %1$s','Primero','Segundo','tercero')
La salida es:
s=
tercero Segundo Primero

Universidad del Atlántico-Facultad de Ingeniería 11


EJEMPLO 6.7 USO DE LAS ESTRUCTURAS if … end / for …end y sprintf.
El siguiente programa imprime todos los tres dígitos que es igual a la suma de los cubos de
sus dígitos:
% ************* programa 6.7 ******************
clear all
clc
for H=1:9
for T=0:9
for U=0:9
if (100*H+10*T+U == H^3+T^3+U^3)
N=sprintf('%s=%d \n','H',H,'T',T,'U',U);
N
end
end
end
end
La salida del programa es:
N =
H=1
T=5
U=3
N=
H=3
T=7
U=0
N=
H=3
T=7
U=1
N=
H=4
T=0
U=7

LA PROPOSICIÓN format.
Use la proposición format para controlar el formato de salida de los valores numéricos
visualizados en la línea de comando de MATLAB. Para escoger el formato de su
preferencia, del menú file seleccione Preferences luego Command window y escoga
Numeric format. Alternativamente puede escribir el formato numérico de su preferencia
en la línea de comando de MATLAB. Use algunos de los siguientes formatos numéricos
para visualizar valores numéricos a la salida :
Formato numérico pi Descripción
format short 3.1416 5 dígitos
format long 3.14159265358979 16 dígitos
format short e 3.1416e+000 5 dígitos más exponente.
format long e 3.14159265358979e+000 16 dígitos más exponente.
format short g 3.1416 El mejor de los formatos short.
format long g 3.14159265358979 El mejor de los formatos long.
format hex 400921fb54442d18 Punto flotante, hexadecimal.
Universidad del Atlántico-Facultad de Ingeniería
format bank 3.14 12 2 dígitos decimales.
format rat 355/113 Número fraccionario.
ESPECIFICANDO EL ANCHO DEL CAMPO Y LA PRECISIÓN A LA SALIDA.
Para especificar el ancho del campo o la precisión usando valores de una lista secuencial
del argumento, utilice un astérisco (*) en lugar del ancho del campo o precisión en el
operador de formato. El siguiente ejemplo ilustra su uso:
>>s=sprintf('%*f %.*f %*.*f',15,123.45678,3,16.42837,6,4,pi)
La salida es:
s =
123.456780 16.428 3.1416
El ejemplo formatea y visualiza tres números. El primer formato %*f, tiene un astérisco
en la localización del ancho del campo,especificando simplemente el ancho del campo de
15 y se toma de la lista del argumento. El segundo formato, %.*f, se coloca un astérisco
después del punto decimal, esto significa la precisión 3 y toma su valor de la lista del
argumento. El tercer formato %*.*f, especifica tanto el ancho del campo cómo la
precisión (6 y 4) en la lista del argumento.
Se pueden mezclar dos estilos. Por ejemplo, ésta función obtiene el ancho del campo (5)
de la lista del argumento y la precisión (2) de la cadena de caracteres:

>> S=sprintf('%*.2f',5,123.45678)
La salida es:
S =
123.46
USANDO IDENTIFICADORES EN EL ANCHO DEL CAMPO Y PRECISIÓN.
Se pueden derivar valores del ancho del campo y precisión de una lista de argumentos no
secuenciales. En el interior del formato especifique el ancho del campo y/o la precisión con
un astérisco seguido por un número identificador, seguido por un signo $.El siguiente
ejemplo ilustra su uso:
>>S=sprintf('%1$*4$f %2$.*5$f %3$*6$.*7$f', 123.45678, 16.42837, pi, 15, 3, 6, 4)
La salida es:
S=
123.456780 16.428 3.1416

RESTRICCIONES PARA USAR IDENTIFICADORES.


• Si cualquiera de los formatos en una cadena incluye un identificador de campo, por
consiguiente, todos los formatos en esa cadena deben ser del mismo tipo. No puede
usar identificadores secuenciales y no secuenciales al mismo tiempo en la misma
función:
Sintáxis válida:
>> sprintf(‘%d %d %d, 1,2,3)
Sintáxis inválida:

Universidad del Atlántico-Facultad de Ingeniería 13


>> sprintf(‘%d %3$d %d, 1,2,3)
• Si se suministra más valores en el argumento que los que están en los formatos de
cadenas, reusa de los formatos, pero MATLAB permite esto solamente para
comandos que se usan en orden secuencial.No puede reusar de formatos cuando
llama una función con clasificación numerada en los valores del argumento:
Sintáxis válida:
>>sprintf(‘%d’,1,2,3,4)
Sintáxis inválida:
>>sprintf(‘%1$d’,1,2,3,4)
• No utilice identificadores cuando el valor del argumento está en forma de vector o
arreglo: Por ejemplo si V=[1.4 2.7 3.1]
Sintáxis válida:
>> S=sprintf('%.4f %.4f %.4f',V)
Sintáxis inválida:
>> S=sprintf('%3$.4f %1$.4f %2$.4f',V)

Recomendaciones para escribir comentarios extensos en los programas:


• Si el comentario se necesita que se visualice al ejecutar el programa, use la
siguiente forma genérica:
Comentario = {‘ Escriba aquí el texto… ‘}
• Si el comentario no se necesita que se visualice después de ejecutar el programa,
use la siguiente forma genérica:
%{ Escriba aquí el texto …%}

Universidad del Atlántico-Facultad de Ingeniería 14

También podría gustarte