La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad VI Registros y Archivos Matlab Dr. J. D. Pope S. ITD.

Presentaciones similares


Presentación del tema: "Unidad VI Registros y Archivos Matlab Dr. J. D. Pope S. ITD."— Transcripción de la presentación:

1 Unidad VI Registros y Archivos Matlab Dr. J. D. Pope S. ITD

2 Estructura de un archivo Los programas que hemos escrito hasta ahora, los almacenamos en dispositivos adecuados, creando archivos de programas. En la ejecución de estos es necesario introducir datos, que pueden ser muy numerosos. Por lo que, es necesario teclearlos o introducirlos dentro del programa, lo cual es tedioso, consume tiempo, o se estara expuesto a errores. Por todo ello, los programas utilizan archivos de datos para leer la información necesaria para su ejecución. Un archivo es un conjunto de de bloques de datos conocidos como registros y estan relacionados entre si. Un registro es un conjunto de campos considerados como una unidad y que contiene información del mismo tipo. Un campo es una area de almacenamiento que contiene elementos diferentes de datos.Un conjunto de campos forma un registro.

3 Archivos en Matlab Un elemento dato es un conjunto de caracteres numéricos o alfanuméricos que en el procesamiento se trata como una sola unidad. En Matlab cada elemento dato se identifica de manera única mediante un nombre de variable. Un conjunto de elementos dato relacionados constituye un registro. Un conjunto de registros constituye un archivo. Ejemplo: Constituyen un registro todos los datos que describen un proceso químico y los registros del proceso químico conforman el archivo del proceso químico.

4 Archivo de datos para la tabla periodica Campo 1 Campo 2 Campo 3 Registro 1 Elemento # Atomico Peso atomico Registor 2 Elemento # Atomico Peso atomico Registro 3 Elemento # Atomico Peso atomico

5 Medios de almacenamiento Los medios de almacenamiento externos mas comunes son: Cintas magnéticas.- Se lee o se escribe en forma seriada. Discos magnéticos.- Puede tenerse acceso a cualquier parte del disco mediante un brazo asignandole una ubicación por medio de un identificador. Métodos de acceso Acceso secuencial.- Los registros se leen en serie en el mismo orden en que se escribieron. Acceso directo.- Los registros pueden leerse o escribiese en cualquier orden. Cada registro debe tener un identificador único, no puede usarse I/O dirigida por lista.

6 Apertura de archivos Un archivo en un disco debe ser conectado a una unidad de I/O antes de que los datos puedan ser leídos del archivo o escritos en el. Modelo general para abrir archivos: Proposición fopen fid = fopen(nombre_archivo, permiso) Donde permiso en una de las siguientes opciones ‘r’ leer ‘w’ escribir(crearlo si es necesario) Otras opciones existen (investigar para completar) Si el archivo se abrió exitosamente fid es un escalar entero que se usa para otras aplicaciones, y si no se abrió exitosamente es igual a Ejemplo fid=fopen('a.txt','r')

7 Cierre de archivos Un archivo en un disco debe ser desconectado de una unidad de I/O después de que los datos han sido leídos del archivo o escritos en el. Modelo general para cerrar archivos: Proposición fclose st = fclose(fid) Si el archivo cerró exitosamente st es igual a 0 si no es igual a –1

8 Lectura de archivos Un archivo en un disco debe ser conectado a una unidad de I/O antes de que los datos puedan ser leídos del archivo. Modelo general para leer archivos con formato: Proposición fscanf A= fscanf(fid, formato,tamaño) Si el archivo cerró exitosamente st es igual a 0 si no es igual a –1 A=fscanf(fid,'%6d')

9 No es necesario que el programador conosca en detalle la forma que se almacenan tecnicamente los datos en la computadora, ya que esto lo hace el compilador de una manera estandar, sin exigir que el programador proporcione todas las especificaciones. Sin embargo, una caracteristica de almacenamiento que el programador puede especificar consiste en la representación formateada o no formateada de los datos. Matlab soporta dos tipos de archivos: Secuenciales y directos Y dos tipos de estructuras: Binaria y con formato

10 % Evalúa: Crear y escribir en un archivo %***************************************************** %* Instituto Tecnológico de Durango * %* Departamento de Ingenierías Química y Bioquímica * %* Programación usando Matlab * %* Instructor: Dr. José Domingo Pope Solis * %***************************************************** x=[3.0 4.5 5.5 6.0 7.5 8.5 8.0 9.0 9.5 10]; fid=fopen('a.txt','w') fprintf(fid,'%6.2f',x); st=fclose(fid) y =[1.5 2.0 3.5 5.0 6.0 7.5 9.0 10.5 12.0 14.0]; fid=fopen('b.txt','w') fprintf(fid,'%6.2f',y); st=fclose(fid)

11 %Programa para evaluar la media desviación de un conjunto de datos %************************************************************** %* Instituto Tecnológico de Durango * %* Departamento de Ingenierías Química y Bioquímica * %* Programación usando Matlab * %* Instructor: Dr. José Domingo Pope Solis * %************************************************************** disp('Programa para evaluar la media de un conjunto de datos ') fid=fopen('a.txt','r');%abrir archivo A = fscanf(fid,'%g'); X=A'; %leer archivo n=length(X); Suma_m = 0; Suma_d = 0; % Calculo de la media y la desviación estándar for i = 1: n Suma_m = Suma_m + X(i); end Xmedia = Suma_m / n; %Calculo de la desviación estándar for i = 1: n Suma_d = Suma_d + (X(i) - Xmedia).^2; end Desviacion = sqrt( Suma_d / (n - 1) ); %Impresión de resultados disp('numero de datos');disp(n) disp('Valor de la media ');disp(Xmedia) disp('Valor de la desviación estándar ');disp(Desviacion) st=fclose(fid);

12 En las paginas siguientes se presentan programas que resuelven problemas ya resueltos en unidades anteriores, pero ahora utilizando archivos.

13 % Programa: Regresión_lineal %***************************************************** %* Instituto Tecnológico de Durango * %* Departamento de Ingenierías Química y Bioquímica * %* Programación usando Matlab * %* Instructor: Dr. José Domingo Pope Solis * %***************************************************** fid=fopen('a.txt','r'); a=fscanf(fid,'%g',[1 inf]);x=a'; st=fclose(fid); fid1=fopen('b.txt','r'); b=fscanf(fid1,'%g',[1 inf]);y=b'; st1=fclose(fid1); n=length(x); Sumx = 0;Sumy = 0;Sumxy = 0;Sumx2 = 0;Sumy2 = 0; for i = 1:n Sumx = Sumx + x(i); Sumy = Sumy + y(i); Sumxy = Sumxy + x(i)*y(i); Sumx2 = Sumx2 + x(i)^2; Sumy2 = Sumy2 + y(i)^2; end b = ((i-1)*Sumxy - Sumx*Sumy)/(((i-1)*Sumx2 - Sumx^2)) a = Sumy/(i-1)-b*Sumx/(i-1) r = ((i-1)*Sumxy-Sumx*Sumy)/sqrt(((i-1)*Sumx2-Sumx^2)*((i-1)*Sumy2-Sumy^2)) %fin Programa Regresion_lineal


Descargar ppt "Unidad VI Registros y Archivos Matlab Dr. J. D. Pope S. ITD."

Presentaciones similares


Anuncios Google