Está en la página 1de 16

SISTEMAS LINEALES

2011

MATLAB
Ing. Paul Glvez F.
Entrada y salida de datos
Escuela de Ingeniera Sede Valparaso

ENTRADA Y SALIDA DE DATOS


1. OPERACIN INTERACTIVA MEDIANTE TECLADO O RATN

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);
P.G.F. 2011
1

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 extensin .mat. a,b: Variables donde estn almacenados los datos a guardar en formato binario de doble precisin. -ascii: Guarda los datos en formato ascii load : Carga las variables que estn en el archivo.

P.G.F. 2011

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 precisin 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.

P.G.F. 2011

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,precisin) fid : A: D: fclose: fwrite(fid,D, precisin) fclose(fid)

identificador del archivo a leer, escribir o cerrar. Variable donde se van a cargar los datos ledos. Variable donde estn los datos a ser escritos. Cierra el archivo abierto con el identificador fid.
P.G.F. 2011
4

precisin: Especifica el formato de los datos a leer o escribir.

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);
P.G.F. 2011
5

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 estn 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 funcin exponencial.
P.G.F. 2011
6

CONVERSIN DE DATOS
1. DE NMEROS A STRING S = num2str ( N ) N : Matriz de nmeros S : Representacin de N como caracteres EJEMPLO 5. DAT = rand(1,100); DESV = std(DAT); DESV = num2str(DESV); plot(DAT); title(['DESVIACION = ',DESV])
P.G.F. 2011
7

2. DE STRING A NMEROS N = str2num ( S )


S : Matriz de caracteres que representan nmeros. N : representacin de S como nmeros

EJEMPLO 6.

archivo = '8'; A = str2num(archivo); Z = A + 10 Z = 18;

P.G.F. 2011

OPERADORES RELACIONALES Y LGICOS a<b a<=b a>b a>=b a==b a~=b a&b a|b ~a a menor que b a menor o igual que b a mayor que b a mayor o igual que b a igual a b a diferente de b ayb aob negacin de a

P.G.F. 2011

ORDENES DE CONTROL Y FLUJO


1. IF...ELSEIF...ELSE...END

if (condicin 1) orden 1 elseif (condicion2) orden 2 ... else orden 3 end


2. FOR...END

for i = a:paso:b orden end


P.G.F. 2011
10

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 Simulacin de una seal de intensidad recibida por fibra ptica, que se guarda en el archivo mensaje,

P.G.F. 2011

11

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)
P.G.F. 2011
12

3. WHILE....END

while (condicin 1) orden end


4. SWITCH...CASE

a = valor; switch a case valor 1 orden 1 case valor 2 orden 2 ... otherwise orden 3 end
P.G.F. 2011
13

EJEMPLO 8

P.G.F. 2011
14

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

5. BREAK

for (condicin 1) ordenes if (condicin 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
P.G.F. 2011

POS= 6

15