1 / 17

INTRODUZIONE A MATLAB

INTRODUZIONE A MATLAB. LEZIONE 3. Sara Poltronieri. Archivi. I dati che dovranno essere introdotti in un programma nonché quelli che sono prodotti da un programma possono essere salvati su degli ARCHIVI . Le due operazioni fondamentali sono la scrittura e la lettura. Operazioni su files.

sean-fuller
Download Presentation

INTRODUZIONE A MATLAB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INTRODUZIONE A MATLAB LEZIONE 3 Sara Poltronieri

  2. Archivi I dati che dovranno essere introdotti in un programma nonché quelli che sono prodotti da un programma possono essere salvati su degli ARCHIVI. Le due operazioni fondamentali sono la scrittura e la lettura.

  3. Operazioni su files Vediamo come scrivere dei dati su un archivio di testo. Si voglia salvare la tabulazione della funzione sin(x) entro l’intervallo (1, 2) con passo 0.1. Si costruisce dapprima il vettore x x = 1 : 0.1 : 2; e quindi si valuta una matrice M M = [ x; sin(x) ];

  4. Apertura di un archivio Decidiamo che il nome esterno dell’archivio su cui si vuole salvare la matrice M sia funzione_sin.txt : esso dovrà essere posto entro apici perché è una stringa. Apriamo l’archivio in scrittura con ’w’ assegnandogli il nome internoarchivio_sin. L’ istruzione è: archivio_sin = fopen (‘funzione_sin.txt’ , ‘w’);

  5. fopen fid = fopen(filename,permission) apre il file filename nella modalità specificata dai permessi(permission). Fid è uno scalare intero chiamato file identifier e lo si usa nel passaggio dei files ad altre routines/functions. Se fopen non riesce ad aprire il file, ritorna il valore –1. I permessi possono essere: ‘ r ’ Open file for reading (default). ‘ w’ Open file, or create new file, for writing; discard existing contents, if any. ‘ a’ Open file, or create new file, for writing; append data to the end of the file. ‘ r+’ Open file for reading and writing. ‘ w+’ Open file, or create a new file, for reading and writing; discard existing contents, if any. ‘ a+’ Open file, or create new file, for reading and writing; append data to the end of the file.

  6. Scrittura di un archivio • Si deposita nell’archivio archivio_sinla matrice M scrivendo le due colonne di numeri decimali: • la prima colonna con 6 cifre di cui 2 decimali • la seconda colonna 8 cifre di cui 4 decimali. • Si osservi che fprintf è un acronimo di file print formatted fprintf (archivio_sin,’%6.2f %8.4f\n’,M); Si noti che per primo si mette il nome interno, per secondo si mette il formato per terzo si mette l’output da scrivere. Quindi si chiude l’archivio fclose (archivio_sin)

  7. fprintf fprintf(fid,format,objsToBeWritten) count = fprintf(fid,format,objsToBeWritten) fprintf formatta i dati contenuti in objsToBeWritten nel formato specificato da format, e li scrive nel file associato con l’identificatore fid ottenuto da fopen. Count in particolare ritorna il numero di bytes scritti nel file.

  8. Formato conversion character flags %-12.5e start of conversion specification precision field width

  9. flags Character Description Example A minus sign (-) Left-justifies the converted argument in its field. %-5.2d A plus sign (+) Always prints a sign character (+ or -). %+5.2d Zero (0) Pad with zeros rather than spaces. %05.2d

  10. Field Width and Precision Specifications Field width A digit string specifying the minimum number of digits to be printed. Precision A digit string including a period (.) specifying the number of digits to be printed to the right of the decimal point.

  11. Conversion Characters Specifier Description %c Single character %d Decimal notation (signed) %e Exponential notation (using a lowercase e as in 3.1415e+00) %E Exponential notation (using an uppercase E as in 3.1415E+00) %f Fixed-point notation %g The more compact of %e or %f. Insignificant zeros do not print. %G Same as %g, but using an uppercase E %i Decimal notation (signed) %o Octal notation (unsigned) %s String of characters %u Decimal notation (unsigned) %x Hexadecimal notation (using lowercase letters a-f) %X Hexadecimal notation (using uppercase letters A-F)

  12. Escape Characters fprintf (archivio_sin,’%6.2g %8.4g\n’,M); Character Description \b Backspace \f Form feed \n New line \r Carriage return \t Horizontal tab \\ Backslash \'' or '' (two single quotes) Single quotation mark %% Percent character Escape Character

  13. Riassumendo... % scrive archivio x = 1 : 0.1 : 2; M = [x; sin(x)]; fid = fopen (’filename.txt’ , ’w’); fprintf (fid,’formato’,M); fclose (fid) Se si vuole vedere l’archivio così creato lo si può fare con un editor di testo oppure digitando edit filename.txt

  14. Lettura di un archivio Sia dato un archivio il cui nome esterno sia del tipo ”archivio.txt” (creato prima). Si apre l’archivio assegnandogli un nome interno: myArchive = fopen ( ‘archivio.txt’ , ‘r’); Il nome del file deve essere posto entro apici perché è una stringa. Si preleva dall’archivio myarchive la matrice M leggendo le due colonne di numeri in formato ”%g” M = fscanf ( myArchive , ‘%f %f’ , [2 inf] ); M = M’; Si noti che per primo si mette il nome interno myarchive, per secondo si mette il formato (’%g %g’), per terzo si mette il numero di elementi per riga (2) e, non sapendo quante righe sono, si mette inf. il tutto entro parentesi quadre per indicare la matrice da prelevare. Quindi si chiude l’archivio fclose (myarchive);

  15. fscanf fscanf(fid,format,size) fscanf legge i dati del file identificato dal fid tanti quanti ne vengono specificati da size nel formato format. Le opzioni valide per size sono: n Read n elements into a column vector. inf Read to the end of the file, resulting in a column vector containing the same number of elements as are in the file. [m,n] Read enough elements to fill an m-by-n matrix, filling the matrix in column order. n can be Inf, but not m.

  16. fwrite & fread Il comando fwrite scrive i dati in un file binario. Il comando fread legge i dati contenuti nel file binario. Sintassi (esempio): M=magic(5); fid = fopen('magic5.bin','w'); fwrite(fid,M,'uint32'); fclose(fid) fid = fopen('magic5.bin','r'); fread(fid,[5,5],'uint32'); fclose(fid) ‘uint32’ = intero, senza segno a 32 bit

  17. Save & Load Il comando save salva le variabili del WorkSpace su disco. In particolare: save salva tutte le variabili del WS in un file matlab.mat save filename salva le variabili nel file filename.mat save filename var1 var2 salva le variabili specificate nel file filename.mat Per caricare le variabili di un WS o un intero WS salvato si usa il comando load con la stessa sintassi.

More Related