Alberto Patiño Vanegas CUARTA SESIÓN • ENTRADA Y SALIDA DE DATOS • CONVERSIÓN DE DATOS • OPERADORES RELACIOALES Y LÓGICOS • ORDENES DE CONTROL Y FLUJO Alberto Patiño Vanegas ENTRADA Y SALIDA DE DATOS 1. OPERACIÓN INTERACTIVA MEDIANTE TECLADO O RATÓN Z = input ( ‘mensaje de solicitud:’ ) disp( X ) El argumento : Mensaje de solicitud que se escribe entre comillas y se exhibe en pantalla. Z : Variable donde se guardará el valor pedido cuando el usuario teclea el valor y pulse la tecla enter. disp: Muestra en pantalla el valor de la variable X. a = input ( 'teclee el primer numero a sumar: '); EJEMPLO 1. b = input('teclee el segundo numero: '); suma = a+b; disp(‘la suma es:’); disp(suma); Alberto Patiño Vanegas 2. GUARDAR Y CARGAR DATOS save archivo a b ... save archivo a -ascii load archivo archivo : Nombre del archivo donde se van a guardar los datos.Se guarda con la extensión .mat. a,b: Variables donde están almacenados los datos a guardar en formato binario de doble precisión. -ascii: Guarda los datos en formato ascii load : Carga las variables que están en el archivo. Alberto Patiño Vanegas EJEMPLO 2. L = [0 1 2 3 4 5 6 7 8 9 10]; T = [0, 0.20, 0.28, 0.34, 0.40, 0.44, 0.49, 0.53, 0.56, 0.60, 0.63]; save pendulo L T ; save longitud L –ascii; save periodo T –ascii; clear all; load pendulo; plot(L,T,’r*’) Se guardan las variables L y T en el archivo pendulo.m en formato binario de doble precisión y en los archivos longitud.m y periodo.m las variables L y T en formato ascii. Se cargan los datos con load para graficarlos. Alberto Patiño Vanegas 3. ABRIR, LEER , ESCRIBIR DATOS EN UN ARCHIVO [fid,mensaje] = fopen( ‘archivo’ , ‘permiso’ ) fid : identificador del archivo. mensaje: Mensaje de error si el archivo no se pudo abrir. archivo : Nombre del archivo a abrir. permiso: Especifica el modo en que es abierto el archivo. A = fread(fid,’precisión’) fwrite(fid,D, ‘precisión’) fclose(fid) fid : identificador del archivo a leer, escribir o cerrar. A: Variable donde se van a cargar los datos leídos. precisión: Especifica el formato de los datos a leer o escribir. D: Variable donde están los datos a ser escritos. fclose: Cierra el archivo abierto con el identificador fid. Alberto Patiño Vanegas EJEMPLO 3. [nom,mensaje] = fopen('Juan.txt','w'); if (nom > 0) msgbox('Archivo creado correctamente','Ok','warn'); else msgbox(mensaje,‘advertencia','error'); end fwrite(nom,'mi nombre es Juan','schar'); fclose(nom); nom = fopen('Juan.txt','r'); msgbox(char(fread(nom,'schar'))') fclose(nom); Alberto Patiño Vanegas 4. GUARDAR CON FORMATO fprintf (fid,’formato’, dat) fid : identificador del archivo donde se van a guardar los datos. format: Clase de formato en que se guardaran los datos. dat: Variable donde están los datos a guardar. EJEMPLO 4. x = 0:.1:1; y = [x ; exp(x)]; fid = fopen('exp.txt','w'); fprintf(fid,'%6.2f %12.8f\n',y); fclose(fid); Crea un archivo de texto con el nombre exp.tex que contiene una tabla con valores de la función exponencial. Alberto Patiño Vanegas CONVERSIÓN DE DATOS 1. DE NÚMEROS A STRING S = num2str ( N ) N : Matriz de números S : Representación de N como caracteres EJEMPLO 5. DAT = rand(1,100); DESV = std(DAT); DESV = num2str(DESV); plot(DAT); title(['DESVIACION = ',DESV]) Alberto Patiño Vanegas 2. DE STRING A NÚMEROS N = str2num ( S ) S : Matriz de caracteres que representan números. N : representación de S como números EJEMPLO 6. archivo = '8'; A = str2num(archivo); Z = A + 10 Z = 18; Alberto Patiño Vanegas OPERADORES RELACIONALES Y LÓGICOS a<b a<=b a menor que b a menor o igual que b a>b a mayor que b a>=b a==b a~=b a&b a|b ~a a mayor o igual que b a igual a b a diferente de b ayb aob negación de a Alberto Patiño Vanegas ORDENES DE CONTROL Y FLUJO 1. IF...ELSEIF...ELSE...END if (condición 1) orden 1 elseif (condicion2) orden 2 ... else orden 3 end 2. FOR...END for i = a:paso:b orden end Alberto Patiño Vanegas EJEMPLO 7. t = linspace(0,2*pi,100); I = abs(4*sin(3*t)); I(35:50)=0; L = length(t) ruido = rand(1,length(t)) S = I+ruido; save mensaje t S Simulación de una señal de intensidad recibida por fibra óptica, que se guarda en el archivo mensaje, Alberto Patiño Vanegas load mensaje figure,Plot(t,I) MAX = max(I); UMBRAL = 0.6*MAX; for i=1:L if I(i)<UMBRAL I(i)=0; else I(i)=1; end figure, plot(t,I) Alberto Patiño Vanegas 3. WHILE....END while (condición 1) orden end 4. SWITCH...CASE a = valor; switch a case valor 1 orden 1 case valor 2 orden 2 ... otherwise orden 3 end clc; sw=1; while (sw ~=0) clc; disp('escoja la operacion:'); disp('suma = 1'); disp('resta = 2'); disp('multiplicacion = 3'); operacion = input(''); if (operacion==1 | operacion==2 |operacion==3) a = input('ingrese el primer numero: '); b = input('ingrese el segundo numero: '); switch operacion case 1 disp(['la suma es: ',num2str(a+b)]) case 2 disp(['la resta es: ',num2str(a-b)]) case 3 disp(['el producto es: ',num2str(a*b)]) end else disp('Operacion no definida'); end disp('Desea continuar?'); disp('SI = 1'); disp('NO = 0'); sw = input(''); end Alberto Patiño Vanegas EJEMPLO 8 Alberto Patiño Vanegas 5. BREAK for (condición 1) ordenes if (condición 2) ordenes; break; end EJEMPLO 9 DAT = [ 0 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 0]; for i = 1: length(DAT) if DAT(i)~=0 POS = i break; end end POS= 6