Az m-funkciók programozása

10. Adatfájlok olvasása és írása.

Saját adataink során következetesen megfontoljuk a numerikus vektorok és mátrixok, szöveges karakterláncok, struktúrák és cellatestek tartalmának írását.

Kezdjük numerikus vektorokkal és mátrixokkal. Az úgynevezett bináris (nem szöveges) fájlokkal dolgozunk, melyeket először a MATLAB rendszer fopen funkciójával kell megnyitni:

ahol a fájl nevét egy teljes elérési útvonal előzi meg (különben a fájlnak az aktuális MATLAB könyvtárban kell lennie). Ennek a funkciónak a második paramétere - a fájl megnyitásának ún. Zászlója - a fájl további munkájának módjáról szól:

'wb' - írj csak (az előző tartalom elveszett)

A példák második betűje a fájlok bináris jellegéről szól. Egy másik lehetőség olyan zászló, amely egyszerre lehetővé teszi a fájlok olvasását és írását ('r +'), de itt nem használjuk.

A fopen függvény megadja a nyitott fájl numerikus azonosítóját, amelyet a fájl olvasási és írási funkcióinak paramétereként kell használni. Ha a fájl megnyitása nem sikerült (ez lehetséges mind a fájl hiányában, mind a lemezen található helytelenül megadott elérési út miatt), akkor a fopen függvény értéke -1 lesz.

Mindig ellenőrizze a visszatérési funkciót fopen:

hiba ("A fájl nem nyitott")

Miután a fájl már nem szükséges, zárva kell zárni:

A bináris fájlokra vonatkozó információk olvasása és írása a fread és a fwrite függvények által történik. A fájlok információinak írásához a fwrite függvény a következő argumentumokkal rendelkezik:

ahol fid a fopen által visszaadott fájlazonosító; A vektor vagy mátrix, amelynek elemeit fájlba kell írni; A "precíziós" karakterlánc a valós számokhoz rendelt memória mennyiségét jelenti. Ez 8 bájt vagy 64 bit, ezért a stringnek "float64" -nek kell lennie.

A következő kódfájl létrehozza az a oszlopvektort és a 2x3 méretű B mátrixot, amelyet ezután "dataTest.gqw" nevű fájlba írnak (itt a fájlnévkiterjesztést önkényesen úgy választják meg, hogy az ne legyen azonos az ismert kiterjesztésekkel):

Most, amikor szüksége van rá, elolvashatja a fájlból eltárolt vektor és mátrix értékeit. Amit az alábbi kódrészlet illusztrál:

Az általunk megadott kódrészletek közül az utolsó olyan gyakorlati hibákkal szembesül, amelyek egyértelműen kiemelik a fájlokkal (különösen a binárisokkal) kapcsolatos problémákat. Először is, nem alkalmazzuk a fájl megnyitásának érvényesítését, amelyet fent említettünk, csak a rövidség kedvéért.

Követni a helyzet a fájl mutatót, és a munka vele a funkció feof (jelzésére használt fájl vége), fseek (beállítja a fájl pointer), ftell (jelzi, ha az aktuális érték a fájl pointer), frewind (beállítja a fájl mutatót egy fájlba nachaldo). Mindezek a funkciók átlátható jelentéssel bírnak, ezért nem fogjuk részletesen megvizsgálni. Mindig megtalálhatók a MATLAB súgórendszerben.

Most beszéljünk egy kicsit a vonalak rögzítéséről. Eddig bináris fájlokkal dolgoztunk. Más típusú fájlok szöveges fájlok. Ezek kifejezetten a felvétel nagy része a szöveg, mert ezek a fájlok szervesen együtt járó „megértés” a szétválás a szöveg a sorban (az a tény, hogy sem a könyv értelemben vett), és ez a bináris fájlok „nem értem”. Az utóbbi csak byte streamrel működik.

A fentiek ellenére a MATLAB szövegváltozók bináris fájlokra írhatók. Fontos megjegyezni, hogy minden karakter két bájtot igényel, ezért az 'int16' jelzőt kell használni.

Íme egy példa erre a munkára:

Az eredmény strTest.gqw fájl, amely bináris formátumban tartalmazza a két karakterláncváltozó tartalmát. Ezek olvashatók a fread funkcióval:

Az m-funkciók programozása

Az m-funkciók programozása

Nincsenek speciális funkciók a MATLAB-cellák struktúráinak és tömbjeinek írására és olvasására fájlokban. Ezért elemzésre van szükségük a belső szerkezetük későbbi olvasása és helyreállítása érdekében.

Kapcsolódó cikkek