Matlab. MATRIX, LINKS, FILES.
În fereastra de comandă, puteți efectua toate operațiile de bază cu matrice (matrice, așa cum sunt numite în programare). Matricea este introdusă după cum urmează: A = [1 466; 6 7 34; 78 12 5]; unde A este numele matricei alese de programator la discreția sa, rândurile matricei sunt separate unul de altul printr-un punct și virgulă. De exemplu, o matrice dintr-o coloană (un vector, așa cum se numește în programare) este introdusă în fereastra de comandă ca: B = [2; 6; 7; 89; -4]; adică elementele sale, fiecare dintre ele situate în linia următoare, sunt separate unul de altul printr-un punct și virgulă. Pentru operațiile cu matrice, sunt furnizate comenzi speciale, care vor fi descrise în detaliu mai târziu.
Acțiuni cu matrice în fișiere M.
În M-fișier matrice de intrare trebuie să organizeze elementwise utilizând următoarele comenzi: A (i, j) = input (strcat ( 'A (', int2str (i), '', int2str (j), ') =' )); unde A este numele matrice, i, j sunt numere întregi (variabile de tip întreg) utilizate ca ciclu contoare, comanda de intrare variabila de intrare cu un tratament preliminar la terminalul de utilizator. Accesul la utilizator este indicat, de obicei, în parantezele comenzii de intrare. În acest caz, comanda strcat este localizată în paranteze, care este destinată să formeze un șir de caractere (text). indica de obicei, câteva fragmente de nume de text și variabile în paranteze că atunci când este necesar pentru a forma un singur text al acestor fragmente și numere (variabile numerice). Pentru a converti variabilele numerice într-un șir de cifre, comenzile int2str sunt utilizate pentru numere întregi și num2str pentru orice număr. Pentru operațiile cu matrice, sunt furnizate comenzi speciale, care vor fi descrise în detaliu mai târziu.
Fișierele text se numesc fișiere din simboluri (text). Acestea constau în linii care se termină cu simbolul "sfârșitul liniei". La sfârșitul fișierului este afișat simbolul "sfârșitul fișierului". Fișierul are o extensie .txt.
Fișierele binare conțin informații sub formă de secvențe de simboluri binare de o anumită lungime. Au extensia .dat.
Pentru a deschide un fișier text, utilizați comanda f = fopen ('exTextFile_1.txt', 'wt'); unde f este numele variabilei care va afișa fișierul deschis în textul programului. exTextFile_1.txt este numele fișierului cu extensia .txt care va fi deschis. Dacă nu ar exista înainte, va fi creată (fără textul conținut în ea). wt înseamnă că fișierul este nou creat, text, gol și deschis doar pentru scriere.
Comanda fprintf (f, 'prima matrice \ n'); înseamnă că în fișierul menționat f se va plasa (scrise) linia specificată în ghilimele. Se termină cu caracterul final al liniei \ n.
Comanda fprintf (f, '% f \ t', A (i, j)); scrie fișierului următorul element al matricei A (i, j). Cota% f indică faptul că elementul matricei va fi scris ca un număr semnat, cu șase zecimale (și dacă ar fi, atunci ar fi un întreg cu un semn;% cu un caracter;% s un șir de caractere;% g un număr cu un semn; indicând ordinea). Același lucru indică faptul că o placă este inserată în fața elementului matricei (adică există un spațiu extins înaintea ei).
Comanda fprintf (f, '\ n'); înseamnă că caracterul de sfârșit de linie va fi introdus, iar următoarea linie va fi executată.
Comanda fclose (f); închide fișierul f. Este necesar. Fiecare fișier utilizat (deschis) trebuie să fie închis (terminați lucrul cu acesta).
Pentru a citi conținutul fișierului text pe care l-am creat, vom scrie fișierul M.
Comanda f = fopen ('exTextFile_1.txt', 'rt'); înseamnă că fișierul este deschis pentru citire.
Comanda s1 = fscanf (f, '% s', 2); înseamnă că șirul s1 (deoarece% s este specificat) este citit din cele două cuvinte (cuvântul este tot înainte de un spațiu sau punct de punctuație sau caracter de sfârșit de linie). Spațiul nu este citit.
Comanda A (i, :) = fscanf (f, '% f', 3); înseamnă că în matricea A din rândul său i, întreaga lungime a liniei este copiată din fișier cu un număr semnat și șase zecimale, trei numere.
Funcții pentru scrierea matricelor într-un fișier și citirea matricelor dintr-un fișier.
Funcția dlmread citește date numerice dintr-un fișier text într-o matrice.
Funcția dlmwrite scrie matricea într-un fișier text.
Comanda dlmwrite ('dlm1.txt', A) scrie matricea A într-un fișier și pune virgule după elementele matricei. Comanda de tip ('dlm1.txt') afișează conținutul fișierului text din fereastra de comandă.
Comanda dlmwrite ('dlm2.txt', A, '#') nu numai că scrie matricea A într-un fișier, ci adaugă și un delimiter între elementele matricei. Puteți specifica aproape orice separator.
Comanda dlmwrite ('dlm3.txt', A, '#', 2,2) nu înregistrează întreaga matrice, ci din rândul și coloana specificate. În locul elementelor lipsă (rânduri și coloane) există separatoare.
Echipa A = dlmread ( „dlm2.txt“, „#“, 1,1), se arată matricea fișierului text specificat pornind de-al doilea rând și a doua coloană (indicată prin numărul liniei și coloana 1, 1 reprezintă de fapt 2 rânduri și 2 coloana, deoarece numerotarea în această comandă vine de la zero). În acest caz, comanda este avertizată cu privire la prezența separatorului # între elementele citite și nu este împiedicată de prezența ei.
Comanda A = dlmread ('exTextFile_3.txt') citește pătratul matricei și dacă nu este suficientă pătratul, adaugă rânduri sau coloane de zerouri.
Comanda A = dlmread ('dlm1.txt', ',') citește, știind despre prezența unui separator între elementele matricei.
Echipa A = dlmread ( 'dlm1.txt', '', [0 0 1 1]) prevede, cunoscând elementele de separare care încep cu un rând 0-lea și coloana 0-lea și rândul 1-lea și 1 coloană când este numerotată de la zero.
Când se deschide cu fopen, modul este: wb (similar cu wt pentru text) și rb (în loc de rt pentru text).
Se face citirea dintr-un fișier binar [A n] = fread (f, n, type); unde A este matricea, n este numărul de elemente citite în ea. În partea dreaptă a expresiei, f identificatorul fișierului, n numărul elementelor citite (dacă se poate număra atât de multe), tipul specifică câte biți din fiecare element să citească. Dacă parametrul de tip (a se vedea tabelul) nu este specificat, atunci programul implicit va presupune că este selectat uchar. Dacă numărul de elemente n care poate fi citit este trecut, acesta va fi citit până la sfârșitul fișierului.
Poziția curentă a indicatorului (câte octeți de la începutul fișierului) este returnată de funcția ftell (f) unde f este identificatorul de fișier. Reveniți cursorul la începutul fișierului cu frewind (f). Mișcarea pointer rămase prin fseek (f, n, origine), în cazul în care mișcarea n funcție (în octeți) în raport cu poziția de origine (trei opțiuni: „BOF“ -1 sau începutul fișierului, „EOF“ sfârșitul fișierului sau 1, „cof“ sau 0 Poziția curentă În ceea ce privește poziția curentă în față n> 0, înapoi n<0. В остальных случаях n>0.)
Intrarea în fișierul binar este realizată de funcția n = fwrite (f, A, type) unde f este identificatorul de fișier, A este matricea care urmează a fi scrisă, tipul este tipul de valori care trebuie scrise, n raportează numărul de valori scrise efectiv.
Citirea dintr-un fișier binar, dacă numărul elementelor din acesta nu este cunoscut în prealabil.
Să știm deja despre fișierul exFwrite1_1.dat care constă în valori pe 32 de biți. Apoi comanda fseek (f, 0,1); înseamnă traducerea pointerul fișierului și apoi comanda n = ftell (f) / 4 primește poziția curentă indicatorul în octeți de la începutul fișierului (de fapt, lungimea fișierului), și apoi îl împarte cu 4, deoarece imaginea este format din 32 de biți (pentru 4 octeți) de elemente, obținând numărul de elemente din fișier. Primul dintre ele este un întreg, restul este o serie de numere reale (a se vedea mai sus ca completarea acestui fișier).
În mod similar, puteți citi date din orice fișier binar, cu informații minime necesare despre natura a ceea ce există (adâncimea bitului, tipurile de elemente).