08.11.2014 Views

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Aprenda</strong> <strong>Matlab</strong> <strong>6.1</strong> como si estuviera en Primero página 74<br />

'r'<br />

'w'<br />

'a'<br />

'r+'<br />

lectura (<strong>de</strong> read)<br />

escritura reemplazando (<strong>de</strong> write)<br />

escritura a continuación (<strong>de</strong> append)<br />

lectura y escritura<br />

Cuando por alguna razón el fichero no pue<strong>de</strong> ser abierto, se <strong>de</strong>vuelve un (-1). En este caso el<br />

valor <strong>de</strong> retorno texto pue<strong>de</strong> proporcionar información sobre el tipo <strong>de</strong> error que se ha producido<br />

(también existe una función llamada ferror que permite obtener información sobre los errores. En el<br />

Help <strong>de</strong>l programa se pue<strong>de</strong> ver cómo utilizar esta función).<br />

Después <strong>de</strong> realizar las operaciones <strong>de</strong> lectura y escritura <strong>de</strong>seadas, el fichero se pue<strong>de</strong> cerrar<br />

con la función close en la forma siguiente:<br />

st = fclose(fi)<br />

don<strong>de</strong> st es un valor <strong>de</strong> retorno para posibles condiciones <strong>de</strong> error. Si se quieren cerrar a la vez<br />

todos los ficheros abiertos pue<strong>de</strong> utilizarse el comando:<br />

st = close('all')<br />

6.6.2. FUNCIONES FSCANF, SSCANF, FPRINTF Y SPRINTF<br />

Estas funciones permiten leer y escribir en ficheros ASCII, es <strong>de</strong>cir, en ficheros formateados. La<br />

forma general <strong>de</strong> la función fscanf es la siguiente:<br />

[var1,var2,...] = fscanf(fi,'ca<strong>de</strong>na <strong>de</strong> control',size)<br />

don<strong>de</strong> fi es el i<strong>de</strong>ntificador <strong>de</strong>l fichero (<strong>de</strong>vuelto por la función fopen), y size es un argumento<br />

opcional que pue<strong>de</strong> indicar el tamaño <strong>de</strong>l vector o matriz a leer. Obsérvese otra diferencia con C: las<br />

variables leídas se <strong>de</strong>vuelven como valor <strong>de</strong> retorno y no como argumentos pasados por referencia<br />

(precedidos por el carácter &). La ca<strong>de</strong>na <strong>de</strong> control va encerrada entre apóstrofos simples, y<br />

contiene los especificadores <strong>de</strong> formato para las variables:<br />

%s para ca<strong>de</strong>nas <strong>de</strong> caracteres<br />

%d para variables enteras<br />

%f para variables <strong>de</strong> punto flotante<br />

%lf para variables <strong>de</strong> doble precisión<br />

La función sscanf es similar a fscanf pero la entrada <strong>de</strong> caracteres no proviene <strong>de</strong> un fichero<br />

sino <strong>de</strong> una ca<strong>de</strong>na <strong>de</strong> caracteres.<br />

Finalmente, la función fprintf dirige su salida formateada hacia el fichero indicado por el<br />

i<strong>de</strong>ntificador. Su forma general es:<br />

fprintf(fi,'ca<strong>de</strong>na <strong>de</strong> control',var1,var2,...)<br />

Esta es la función más parecida a su homóloga <strong>de</strong> C. La ca<strong>de</strong>na <strong>de</strong> control contiene los<br />

formatos <strong>de</strong> escritura, que son similares a los <strong>de</strong> C, como muestran los ejemplos siguientes:<br />

fprintf(fi,'El número <strong>de</strong> ecuaciones es: %d\n',n)<br />

fprintf(fi,'El <strong>de</strong>terminante es: %lf10.4\n',n)<br />

De forma análoga, la función sprintf convierte su resultado en una ca<strong>de</strong>na <strong>de</strong> caracteres que<br />

<strong>de</strong>vuelve como valor <strong>de</strong> retorno, en vez <strong>de</strong> enviarlo a un fichero. Véase un ejemplo:<br />

resultado = sprintf('El cuadrado <strong>de</strong> %f es %12.4f\n',n,n*n)<br />

don<strong>de</strong> resultado es una ca<strong>de</strong>na <strong>de</strong> caracteres. Esta función constituye el método más general <strong>de</strong><br />

convertir números en ca<strong>de</strong>nas <strong>de</strong> caracteres, por ejemplo para ponerlos como títulos <strong>de</strong> figuras.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!