Académique Documents
Professionnel Documents
Culture Documents
6 SOBRE
PROGRAMACIÓN MATLAB
1
6
OBJETIVOS
CONTROL DE ENTRADA / SALIDA
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.
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).
Apóstrofos
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.
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
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.
%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.
Apóstrofos
%s
Donde: s especifica la cadena de caracteres alfanuméricos.
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