Clase 3 Matlab

  • Uploaded by: Denis Parra Santander
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Clase 3 Matlab as PDF for free.

More details

  • Words: 636
  • Pages: 2
INFO 061

Laboratorio 4 9 de Mayo de 2007

Control de Errores Podemos controlar los errores en el flujo de un programa usando la estructura try-catch. A = rand(3,4) try f = input('Hola, ingresa la fila '); c = input('Hola, ingresa la columna '); n = A(f,c); disp(['A(' num2str(f) ',' num2str(c) ') = ' num2str(n)]); catch disp('Error') end Las sentencias dentro de la sección try son ejecutadas normalmente, pero cuando aparece un error, la ejecución pasa automáticamente a la sección catch.

Número de parámetros Dentro del cuerpo de una función existen (automáticamente creadas) dos valores, nargin y nargout que representan el número de parámetros de entrada y salida respectivamente. El siguiente ejemplo muestra una función que calcula el promedio, el mínimo, el máximo de un vector dependiendo de: -

Si al llamar la función se entregan como entrada dos vectores, los valores del segundo representarán las ponderaciones de los valores del primero. Si se llama la función con 1 argumento, sólo se calcula el promedio.

function [P,minimo,maximo] = promedio(A,B) try L = size(A); switch nargin case 1 suma = 0; for i=1:L(1) for j=1:L(2) suma = suma + A(i,j); end end P = suma / (L(1)*L(2)); case 2, P = 0; for i=1:L(1) for j=1:L(2) P = P + A(i,j)*B(i,j); end end end catch disp('Error. Las dimensiones de las matrices de entrada deben coincidir'); end switch nargout case 2, minimo = min(A); case 3, minimo = min(A); maximo = max(A); end

Lectura y escritura de archivos Lectura de archivos El siguiente ejemplo muestra un sencillo programa que lee líneas de un archivo de texto, interpreta el contenido como números separados por espacio, los almacena en un vector y luego muestra en consola el vector: % este programa muestra las funcionalidades basicas de % lectura de archivos de texto nombrearchivo = input('Ingrese el nombre del archivo: ','s'); [arch,error] = fopen(nombrearchivo,'r'); % arch queda en -1 si ha habido un error al abrir el archivo if (arch > -1) % se lee toda la informacion y se almacena en un vector % los datos son interpretados como numeros enteros (%d) vector = fscanf(arch,'%lf'); res = fclose(arch); disp('Los numeros leidos: '); disp(vector); else disp('El archivo no pudo ser abierto'); end

Notar como el programa pide el nombre del archivo a leer, el cual debe estar en la misma carpeta que el archivo .m del programa (a menos que al ejecutar el programa el usuario especifique la ruta precisa del archivo). Para que la función input obtenga un texto (sin transformar a número) se incluye el modificador ‘s’ (string). Para realizar la lectura de datos desde un archivo de texto se utiliza la función fscanf, sin embargo antes de leer los datos, el archivo debe ser “abierto” y para esto se utiliza la función fopen. La función fopen recibe dos entradas: el nombre del archivo y el modo de apertura. Los modos de apretura: 'r' 'w' 'a' 'r+' 'w+' 'a+'

read write (create if necessary) append (create if necessary) read and write (do not create) truncate or create for read and write read and append (create if necessary)

La sintaxis de la función fscanf es bastante flexible. En este caso se leen todos los elementos separados por espacio del archivo arch como números de doble precisión (esto por el modificador ‘%lf’. Otros modificadores: ‘s’ para cadenas, ‘%d’ para enteros). Luego de realizar la lectura del contenido del archivo, éste debe ser cerrado usando fclose. Un ejemplo de archivo, numeros.txt: 1 2 5 -30.74 -12 47 -100.67 65 4.3 12

Escritura de archivos El ejemplo es similar al de lectura de archivos: % este programa muestra las funcionalidades basicas de % escritura de archivos de texto [arch,error] = fopen('datos.txt','w'); if (arch > -1) for i=1:1000 numero = fprintf(arch,'%d ',i); end res = fclose(arch); else disp('El archivo no pudo ser creado'); end

Related Documents

Clase 3 Matlab
October 2019 20
Clase 3 - Control En Matlab
October 2019 19
Matlab 3
April 2020 14
Clase 2 - Control En Matlab
October 2019 24
Clase 1 - Control En Matlab
October 2019 23
Matlab
July 2020 24

More Documents from ""

Clase 2 (ayudantia)
October 2019 30
Clase 3 Matlab
October 2019 20
Tise2005 2cols
August 2019 15
Intro Matlab
October 2019 31
Sieci 2004 R6
August 2019 26