Programarea funcțiilor m

10. Citirea și scrierea fișierelor de date.

Conform propriilor noastre date, vom lua în considerare în mod constant scrierea conținutului vectorilor numerici și a matricelor, a șirurilor de text, a structurilor și a celulelor.







Să începem cu vectori numerici și matrici. Vom lucra cu așa-numitele fișiere binare (nu text), care trebuie deschise mai întâi cu ajutorul funcției fopen a sistemului MATLAB:

unde numele fișierului poate fi precedat de o cale completă la acesta (în caz contrar fișierul trebuie localizat în directorul curent MATLAB). Al doilea parametru al acestei funcții - așa-numitul pavilion de deschidere a fișierului, vorbește despre modul de continuare a lucrului cu fișierul:

'wb' - scrie numai (conținutul anterior este pierdut)

A doua literă din aceste exemple vorbește despre natura binară a dosarelor. O altă opțiune este un steag care permite atât citirea și scrierea fișierelor în același timp ("r +"), dar nu le vom folosi aici.

Funcția fopen returnează identificatorul numeric al fișierului deschis, care trebuie utilizat ca parametru pentru funcțiile de citire și scriere din acest fișier. Dacă operația de deschidere a fișierului a eșuat (acest lucru este posibil atât datorită absenței fișierului, cât și pentru că calea către acesta este specificată incorect pe disc), funcția fopen returnează -1.

Verificați întotdeauna funcția de returnare fopen:

eroare ("Fișierul nu este deschis")

După ce fișierul nu mai este necesar, acesta trebuie închis cu fclose:

Citirea și scrierea informațiilor în fișiere binare se face prin funcțiile fread și fwrite. Funcția fwrite pentru scrierea de informații în fișiere are următoarele argumente:

unde fid este identificatorul fișierului returnat de fopen; A este un vector sau o matrice ale cărei elemente trebuie să fie scrise într-un fișier; Șirul "precizie" se referă la cantitatea de memorie alocată numerelor reale. Aceasta este de 8 octeți sau 64 biți, astfel încât șirul ar trebui să arate ca "float64".







Următorul fragment de cod creează un vector coloană și matricea B este dimensiunea de 2x3, care apoi sunt stocate într-un fișier numit „dataTest.gqw“ (aici extensia de nume de fișier este selectat în mod aleatoriu, astfel încât să nu coincidă cu extensiile cunoscute):

Acum, ori de câte ori aveți nevoie, puteți citi valorile vectorului și matricei stocate acolo din fișier. Ceea ce este ilustrat de următorul fragment de cod:

Ultimul dintre fragmentele de cod date de noi suferă de o serie de defecte practice care evidențiază în mod clar problemele întâlnite la lucrul cu fișiere (în special cele binare). În primul rând, nu aplicăm validarea deschiderii fișierului, pe care am menționat-o mai sus, doar pentru o scurtă durată.

Pentru a urmări poziția cursorului de fișier, și să lucreze cu el sunt funcția feof (utilizată pentru a indica sfârșitul fișierului), fseek (setează indicatorul de fișier), ftell (vă permite să știți valoarea curentă a cursorului de fișier), frewind (setează indicatorul fișier într-un nachaldo fișier). Toate aceste caracteristici au o semnificație clară, așa că nu trebuie să ia în considerare în detaliu. Ele pot fi găsite întotdeauna în sistemul de ajutor MATLAB.

Acum hai să vorbim puțin despre înregistrarea liniilor. Până acum am lucrat cu fișiere binare. Un alt tip de fișiere sunt fișiere text. Acestea sunt special concepute pentru înregistrarea pieselor mari ale textului, deoarece aceste fișiere sunt organic inerente în „înțelegere“ a diviziunii textului pe linie (în faptul că nu este nici sentimentul de carte al cuvântului), iar acest fișiere binare „nu înțeleg“. Acestea din urmă funcționează numai cu un flux de octeți.

În ciuda celor de mai sus, variabilele de text MATLAB pot fi scrise în fișiere binare. Este important să rețineți că fiecare caracter necesită doi octeți, deci trebuie să utilizați pavilionul "int16".

Iată un exemplu al acestei lucrări:

Rezultatul este un fișier strTest.gqw care conține conținutul a două variabile de șir în format binar. Ele pot fi citite folosind funcția fread:

Programarea funcțiilor m

Programarea funcțiilor m

Nu există funcții speciale pentru scrierea și citirea structurilor și a rețelelor de celule MATLAB în fișiere. Prin urmare, ele trebuie să fie scrise în funcție de element, cu citirea și restaurarea ulterioară a structurii lor interne.







Articole similare

Trimiteți-le prietenilor: