Cum se configurează smartphone-uri și PC-uri. Portal informativ

Deschideți fișierul Matlab. Schimb de date între MatLab și Excel

). Printre instrumentele de uz general utilizate în chimiometrie, pachetul MatLab ocupă un loc aparte. Popularitatea sa este extrem de mare. Acest lucru se datorează faptului că MatLab este puternic și versatil procesare a datelor multidimensionale. Însăși structura pachetului îl face un instrument convenabil pentru efectuarea calculelor matriceale. Gama de probleme, al căror studiu poate fi efectuat folosind MatLab, acoperă: analiza matricei, procesarea semnalului și a imaginii, rețele neuronaleși multe altele. MatLab este un limbaj de nivel înalt sursa deschisa, care permite utilizatorilor experimentați să înțeleagă algoritmii programați. Un limbaj de programare simplu încorporat facilitează crearea propriilor algoritmi. De mulți ani de utilizare a MatLab, o cantitate mare funcții și ToolBox (pachete de instrumente specializate). Cel mai popular este PLS ToolBox de la Eigenvector Research, Inc.

1. Informații de bază

1.1. Mediul de lucru MatLab

Pentru a porni programul, faceți dublu clic pe pictogramă. Mediul de lucru prezentat în figură se va deschide în fața dvs.

Spațiul de lucru MatLab 6.x ușor diferit de mediul de lucru al versiunilor anterioare, are o interfață mai convenabilă pentru accesarea multor elemente auxiliare

Spațiul de lucru MatLab 6.x conţine următoarele articole:

    o bară de instrumente cu butoane și o listă derulantă;

    Fereastra cu file Launch Pad și Spațiul de lucru din care poți accesa diverse module ToolBox și la conținutul mediului de lucru;

    fereastra cu file Istoricul comenzilorși Directorul curent, destinate vizualizarii si reapelarii comenzilor introduse anterior, precum si setarii directorului curent;

    fereastra de comandă, care conține promptul „și un cursor vertical care clipește;

    bara de stare.

Dacă într-un mediu de lucru MatLab 6.x unele ferestre prezentate în figură lipsesc, apoi selectați elementele corespunzătoare din meniul Vizualizare: Fereastra de comandă, Istoricul comenzilor, Directorul curent, Spațiul de lucru, Launch Pad.

Comenzile trebuie introduse în fereastra de comandă. Nu trebuie să tastați „caracterul” pentru a indica promptul liniei de comandă. A vedea Zona de lucru este convenabil să utilizați barele de defilare sau tastele Acasă, Sfârșit pentru a vă deplasa la stânga sau la dreapta și Pagină în sus, Pagină în jos pentru a vă deplasa în sus sau în jos. Dacă brusc, după deplasarea în zona de lucru a ferestrei de comandă, linia de comandă cu cursorul intermitent a dispărut, trebuie doar să apăsați Enter.

Este important de reținut că setul oricărei comenzi sau expresii trebuie să se încheie prin apăsarea Enter, pentru ca MatLab să execute această comandă sau să calculeze expresia.

1.2. Cele mai simple calcule

Tastați 1 + 2 la linia de comandă și apăsați Enter. Ca rezultat, în fereastra de comandă MatLab se afișează următoarele:

Orez. 2 Reprezentarea grafică a analizei componentelor principale

Ce a făcut MatLab? Mai întâi, ea a calculat suma 1 + 2, apoi a scris rezultatul în variabila specială an și a tipărit valoarea acesteia, egală cu 3, în fereastra de comandă. Sub răspuns este o linie de comandă cu un cursor care clipește, indicând faptul că MatLab este pregătit pentru calcule suplimentare. Puteți introduce expresii noi în linia de comandă și puteți găsi valorile acestora. Dacă trebuie să continuați să lucrați cu expresia anterioară, de exemplu, să calculați (1 + 2) /4,5, atunci cea mai ușoară modalitate este să utilizați rezultatul deja existent, care este stocat în variabila ans. Tastați ans / 4.5 (se folosește un punct la introducerea fracțiilor zecimale) și apăsați introduce, se dovedește

Orez. 3 Reprezentarea grafică a analizei componentelor principale

1.3. Echo comenzi

Fiecare execuție de comandă în MatLab este repetată. În exemplul de mai sus, acesta este răspunsul ans = 0,6667. Adesea, ecoul face dificilă perceperea activității programului și apoi poate fi dezactivat. Pentru a face acest lucru, comanda trebuie să se încheie cu punct și virgulă. de exemplu

Orez. 4 Exemplu de introducere a funcției ScoresPCA

1.4. Conservarea mediului de lucru. fișiere MAT

Cel mai simplu mod de a salva toate valorile variabilelor este să utilizați elementul Salvare spațiu de lucru ca din meniul Fișier. Apare caseta de dialog Salvare variabile spațiu de lucru, în care trebuie să specificați directorul și numele fișierului. În mod implicit, este sugerat să salvați fișierul în subdirectorul de lucru al directorului principal MatLab. Programul va salva rezultatele muncii într-un fișier cu extensia mat. Acum puteți închide MatLab. În următoarea sesiune, pentru a restabili valorile variabilelor, deschideți acest fișier salvat folosind sub-elementul Deschidere din meniul Fișier. Acum toate variabilele definite în sesiunea anterioară sunt din nou disponibile. Ele pot fi folosite în comenzile nou introduse.

1.5. Revistă

MatLab are capacitatea de a scrie comenzi executabile iar rezultatele într-un fișier text (păstrați un jurnal de lucru), care poate fi apoi citit sau tipărit dintr-un editor de text. Pentru a începe înregistrarea, utilizați comanda jurnal... Ca argument de comandă jurnal trebuie să specificați numele fișierului în care va fi stocat jurnalul de lucru. Comenzile tastate mai departe și rezultatele executării lor vor fi scrise în acest fișier, de exemplu, o secvență de comenzi

efectuează următoarele acțiuni:

    deschide jurnalul în fișierul exampl-1.txt;

    efectuează calcule;

    salvează toate variabilele în fișierul MAT work-1.mat;

    salvează jurnalul în fișierul exampl-1.txt în subdirectorul de lucru al directorului rădăcină MatLab și închide MatLab;

Uitați-vă la conținutul fișierului exampl-1.txt în unele editor de text... Fișierul va conține următorul text:

a1 = 3;
a2 = 2,5;
a3 = a1 + a2

Salvați munca-1
părăsi

1.6. Sistem de ajutor

Fereastra de ajutor MatLab apare după alegerea opțiunii Fereastra de ajutor din meniul Ajutor sau făcând clic pe butonul de întrebare din bara de instrumente. Aceeași operațiune poate fi efectuată prin tastarea comenzii helpwin... Pentru a afișa o fereastră de ajutor pentru secțiuni individuale, tastați helpwin subiect... Fereastra de ajutor vă oferă aceleași informații ca și comanda de ajutor, dar interfața cu ferestre oferă mai multe comunicare convenabilă cu alte subiecte de ajutor. Folosind adresa site-ului web Math Works, vă puteți conecta la serverul firmei și puteți obține cele mai recente informații despre întrebările dvs. Vă puteți familiariza cu noile produse software sau puteți găsi un răspuns la problemele dvs. pe pagina de asistență tehnică.

2. Matrici

2.1. Scalari, vectori și matrici

Scalarii, vectorii și matricele pot fi utilizați în MatLab. Pentru a introduce un scalar, este suficient să îi atribuiți valoarea unei variabile, de exemplu

Rețineți că MatLab face distincție între majuscule și litere mari deci p și P sunt variabile diferite. Pentru a introduce matrice (vectori sau matrice), elementele acestora sunt cuprinse între paranteze drepte. Deci, pentru a introduce un vector de linie 1 × 3, utilizați următoarea comandă, în care elementele liniei sunt separate prin spații sau virgule.

Când introduceți un vector coloană, separați elementele cu punct și virgulă. De exemplu,

Este convenabil să introduceți matrice de dimensiuni mici direct din linia de comandă. Pe măsură ce tastați, o matrice poate fi considerată ca un vector coloană, fiecare element al căruia este un vector rând.

sau o matrice poate fi gândită ca un vector rând, fiecare element al căruia este un vector coloană.

2.2. Elemente de acces

Elementele matricei sunt accesate folosind doi indici - numere de rând și de coloană, incluse în paranteze rotunde, de exemplu, comanda B (2,3) va returna elementul din al doilea rând și din a treia coloană a matricei B. Pentru a selecta o coloană sau un rând dintr-o matrice, utilizați numărul coloanei sau al rândului matricei ca unul dintre indici și înlocuiți celălalt index cu două puncte. De exemplu, scriem al doilea rând al matricei A în vectorul z

De asemenea, puteți evidenția blocuri de matrice folosind două puncte. De exemplu, selectați din matricea P blocul marcat cu culoare

Dacă trebuie să vizualizați variabilele mediului de lucru, în linia de comandă trebuie să tastați comanda cui .

Puteți vedea că spațiul de lucru conține un scalar (p), patru matrice (A, B, P, P1) și un vector rând (z).

2.3. Operații de bază cu matrice

Când utilizați operații cu matrice, rețineți că pentru adunare sau scădere, matricele trebuie să fie de aceeași dimensiune, iar la înmulțire, numărul de coloane din prima matrice trebuie să fie egal cu numărul de rânduri din a doua matrice. Adunarea și scăderea matricelor, precum și a numerelor și a vectorilor, se efectuează folosind semnele plus și minus

iar înmulțirea este indicată de un asterisc *. Introduceți o matrice 3 × 2

Înmulțirea unei matrice cu un număr se realizează și cu ajutorul unui asterisc și puteți înmulți cu un număr atât în ​​partea dreaptă, cât și în stânga. erecție matrice pătrată la o putere întreagă este produsă folosind operatorul ^

Verificați rezultatul înmulțind matricea P cu ea însăși.

2.4. Crearea de matrici speciale

Umplerea unei matrice dreptunghiulare cu zerouri se face prin funcția încorporată zerouri

Matricea de identitate este creată folosind funcția ochiul

O matrice formată din unii se formează ca rezultat al apelării funcției cele

MatLab oferă capacitatea de a umple matrice cu numere aleatorii. Rezultatul funcției rand este o matrice de numere distribuite uniform între zero și unu și funcțiile randn- matricea numerelor distribuite conform legii normale cu medie zero si varianta unitara.

Funcţie diag formează o matrice diagonală dintr-un vector prin aranjarea diagonală a elementelor.

2.5. Calculele matriceale

MatLab conține multe funcții diferite pentru lucrul cu matrice. Deci, de exemplu, o matrice este transpusă folosind un apostrof "

Găsind matrice inversă efectuate cu ajutorul funcției inv pentru matrice pătrată

3. Integrarea MatLab și Excel

Integrarea MatLab și Excel permite utilizatorului Excel să acceseze numeroase funcții MatLab pentru prelucrarea datelor, diverse calcule și vizualizarea rezultatului. Suplimentul excllink.xla implementează această îmbunătățire Excel. Pentru comunicarea între MatLab și Excel, sunt definite funcții speciale.

3.1. Configurarea Excel

Înainte de a seta Excel la munca în comun cu MatLab, ar trebui să vă asigurați că Excel Link este inclus în versiunea instalată a MatLab. Fișierul de extensie excllink.xla trebuie să fie localizat în subdirectorul exclink al directorului principal MatLab sau în subdirectorul toolbox. Porniți Excel și alegeți Add-in-uri din meniul Tools. Se va deschide o casetă de dialog care conține informații despre cele disponibile acest moment suprastructuri. Utilizați butonul Răsfoire pentru a specifica calea către fișierul excllink.xla. În lista de suplimente căsuță de dialog va apărea o linie Excel Link 2.0 pentru utilizare cu MatLab cu steagul pus. Faceți clic pe OK, programul de completare necesar a fost adăugat în Excel.

Rețineți că Excel are acum un panou Instrumente Excel Link care conține trei butoane: putmatrix, getmatrix, evalstring. Aceste butoane implementează principalele acțiuni necesare implementării relației dintre Excel și MatLab - schimbul de date matrice și execuția comenzilor MatLab din mediul Excel. La lansări repetate Add-in Excel excllink.xla este conectat automat.

Lucrarea coordonată a Excel și MatLab necesită câteva setări suplimentare, care sunt acceptate implicit în Excel (dar pot fi modificate). În meniul Instrumente, accesați Opțiuni, se deschide caseta de dialog Opțiuni. Selectați fila General și asigurați-vă că indicatorul de stil de referință R1C1 este dezactivat, de exemplu. celulele sunt numerotate A1, A2 etc. În fila Editare, trebuie setată selecția Mutare după Enter.

3.2. Schimb de date între MatLab și Excel

Porniți Excel, verificați că totul este făcut setările necesare așa cum este descris în secțiunea anterioară (MatLab trebuie să fie închis). Introduceți o matrice în celulele A1 la C3, utilizați un punct pentru a separa zecimale în conformitate cu cerințele Excel.

Selectați datele celulei de pe foaie și apăsați butonul putmatrix, apare o fereastră Excel cu un avertisment că MatLab nu rulează. Faceți clic pe OK, așteptați deschiderea MatLab.

Apare o casetă de dialog Excel cu o linie de introducere pentru a defini numele variabilei de lucru medii MatLab, în care doriți să exportați date din celulele Excel selectate. Introduceți, de exemplu, M și închideți fereastra cu butonul OK. Accesați fereastra de comandă MatLab și asigurați-vă că a fost creată o variabilă M în mediul de producție, care conține o matrice de trei pe trei:

Faceți unele operații în MatLab cu matricea M, de exemplu, inversați-o.

Apel inv pentru a inversa matricea, ca orice altă comandă MatLab, puteți efectua direct din Excel. Apăsarea butonului evalstring, situat pe panoul Excel Link, duce la apariția unei casete de dialog, în a cărei linie de introducere ar trebui să tastați comanda MatLab

IM = inv (M).

Rezultatul este similar cu cel obținut la executarea comenzii în mediul MatLab.

Reveniți la Excel, faceți celula A5 curentă și faceți clic pe butonul getmatrix. Apare o casetă de dialog cu o linie de introducere care vă cere să introduceți numele variabilei de importat în Excel. V în acest caz o astfel de variabilă este IM. Faceți clic pe OK, celulele de la A5 la A7 sunt umplute cu elemente de matrice inversă.

Deci, pentru a exporta o matrice în MatLab, ar trebui să selectați celulele corespunzătoare Foaia de lucru Excel, iar pentru import este suficient să specificați o celulă, care va fi elementul din stânga sus al matricei importate. Restul elementelor vor fi scrise în celulele foii în funcție de dimensiunea matricei, suprascriind datele pe care le conțin, așa că ar trebui să fiți atenți când importați matrice.

Abordarea de mai sus este cea mai mare într-un mod simplu schimb de informații între aplicații - datele inițiale sunt conținute în Excel, apoi exportate în MatLab, procesate acolo într-un fel și rezultatul este importat în Excel. Utilizatorul transferă date folosind butoanele din bara de instrumente Excel Link. Informațiile pot fi prezentate sub forma unei matrice, de ex. zona dreptunghiulară a foii de lucru. Celulele aranjate într-un rând sau coloană sunt exportate în vectori rând și, respectiv, vectori coloană din MatLab. Importul vectorilor rând și al vectorilor coloane în Excel funcționează într-un mod similar.

4. Programare

4.1. Fișiere M

Lucrul din linia de comandă MatLab este dificil dacă trebuie să introduceți o mulțime de comenzi și să le schimbați des. Păstrarea unui jurnal cu o comandă jurnal iar păstrarea mediului de lucru ușurează puțin munca. Cea mai convenabilă modalitate de a executa grupuri de comenzi MatLab este să utilizați fișiere M, în care puteți să tastați comenzi, să le executați pe toate odată sau pe părți, să le salvați într-un fișier și să le utilizați mai târziu. Editorul de fișiere M este destinat să lucreze cu fișiere M. Cu ajutorul acestuia, puteți crea propriile funcții și le puteți apela, inclusiv din fereastra de comandă.

Deschideți meniul Fișier al ferestrei principale MatLab și, în elementul Nou, selectați subelementul M-file. Noul fișier se deschide în fereastra editorului de fișiere M, care este prezentată în figură.

Există două tipuri de fișiere M în MatLab: fișier program ( Script M-Files) care conține o secvență de comenzi și funcții de fișier ( Funcția M-Files) care descriu funcții definite de utilizator.

4.2. Program de fișiere

Introduceți comenzi în editor care duc la construirea a două grafice într-o fereastră grafică

Acum salvați fișierul numit mydemo.m în subdirectorul de lucru al directorului principal MatLab, selectând elementul Salvare ca din meniul Fișier al editorului. Pentru a rula toate comenzile conținute în fișier pentru execuție, selectați elementul Run din meniul Debug. Pe ecran va apărea o fereastră grafică. figura 1 conţinând grafice ale funcţiilor.

Comenzile fișier-program ies în fereastra de comandă. Pentru a suprima ieșirea, terminați comenzile cu punct și virgulă. Dacă se comite o eroare la tastare și MatLab nu poate recunoaște comanda, atunci comenzile sunt executate până la cea introdusă incorect, după care este afișat un mesaj de eroare în fereastra de comandă.

Foarte oportunitate convenabilă furnizat de Editor de fișiere M, este executarea unei părți din comenzi. Închideți fereastra grafică figura 1... Selectați cu mouse-ul în timp ce țineți apăsat butonul din stânga sau cu tastele săgeți în timp ce țineți apăsat Schimb, primele patru comenzi și executați-le din elementul Text. Vă rugăm să rețineți că în fereastra grafică este afișată o singură diagramă, corespunzătoare comenzilor executate:. Amintiți-vă că pentru a executa unele dintre comenzi, selectați-le și apăsați tasta F9.

Blocurile individuale ale fișierului M pot fi furnizate cu comentarii care sunt sărite în timpul execuției, dar sunt convenabile atunci când lucrați cu fișierul M. Comentariile încep cu un semn de procent și sunt evidențiate automat în verde, de exemplu:

Un fișier M existent este deschis utilizând elementul Deschidere din meniul Fișier al mediului de lucru sau editorul de fișiere M.

4.3. Funcția fișier

Fișierul-program de mai sus este doar o secvență de comenzi MatLab, nu are argumente de intrare și de ieșire. Pentru a utiliza metode numerice și atunci când vă programați propriile aplicații în MatLab, trebuie să puteți compune funcții de fișier care produc acțiunile necesare cu argumente de intrare și returnează rezultatul acțiunii în argumente de ieșire. Să ne uităm la câteva exemple simple pentru a vă ajuta să înțelegeți cum să lucrați cu funcțiile fișierelor.

Centrarea este adesea folosită în preprocesarea datelor de analiză chimiometrică multivariată. Este logic să scrieți o funcție de fișier o dată și apoi să o apelați oriunde este necesar să o centrați. Deschideți un fișier nou în editorul de fișiere M și tastați

Cuvântul funcție de pe prima linie specifică faptul că acest fișier conține un fișier de funcție. Prima linie este antetul funcției, care conține numele funcției și lista de argumente de intrare și de ieșire. În exemplu, numele funcției este centrat, un argument de intrare este X și o ieșire este Xc. După titlu, urmează comentariile și apoi corpul funcției (în acest exemplu, este format din două linii), unde este calculată valoarea acesteia. Este important ca valoarea calculată să fie scrisă în Xc. Asigurați-vă că includeți un punct și virgulă pentru a preveni afișarea informațiilor inutile pe ecran. Acum salvați fișierul în directorul de lucru. Rețineți că, dacă alegeți elementul Salvare sau Salvare ca din meniul Fișier, apare o casetă de dialog pentru salvarea fișierului, câmpul Nume fișier al căruia conține deja centrarea numelui. Nu-l schimba, salvează fișierul funcției într-un fișier cu numele sugerat!

Acum funcția creată poate fi folosită în același mod ca și sin, cos și altele încorporate. Funcțiile proprii pot fi apelate dintr-un fișier de program și dintr-o altă funcție de fișier. Încercați să scrieți singur o funcție de fișier care va scala matrice, de exemplu. împărțiți fiecare coloană la abaterea standard pentru acea coloană.

Puteți scrie un fișier funcție cu mai multe argumente de intrare, care sunt plasate într-o listă separată prin virgulă. De asemenea, puteți crea funcții care returnează mai multe valori. Pentru a face acest lucru, argumentele de ieșire sunt adăugate, separate prin virgulă, la lista de argumente de ieșire, iar lista în sine este cuprinsă între paranteze drepte. Un bun exemplu este o funcție care convertește un timp în secunde în ore, minute și secunde.

Când se apelează funcții de fișier cu mai multe argumente de ieșire, rezultatul ar trebui să fie scris într-un vector de lungimea corespunzătoare.

4.4 Crearea unui program

MatLab are oportunități ample pentru imagine grafică vectori și matrice, precum și pentru crearea de comentarii și imprimarea graficelor. Să descriem câteva funcții grafice importante.

Funcţie complot are diverse forme asociate cu parametrii de intrare, de exemplu graficul (y) creează un grafic liniar pe bucăți al dependenței elementelor y de indicii lor. Dacă doi vectori sunt dați ca argumente, atunci graficul (x, y) va reprezenta graficul y față de x. De exemplu, pentru a reprezenta grafic funcția sin de la 0 la 2π, faceți următoarele

Programul a construit un grafic de dependență care este afișat în fereastră figura 1

MatLab atribuie automat propria culoare fiecărui grafic (cu excepția cazului în care utilizatorul o face), ceea ce vă permite să distingeți între seturile de date.

Echipă stai așa vă permite să adăugați curbe unui grafic existent. Funcţie subplot vă permite să afișați mai multe diagrame într-o singură fereastră

4.5 Tipărirea graficelor

Elementul Imprimare din meniul Fișier și comanda imprimare tipăriți grafice MatLab. Meniul Imprimare afișează o casetă de dialog care vă permite să selectați opțiunile standard de imprimare comune. Echipă imprimare oferă mai multă flexibilitate în ceea ce privește ieșirea și vă permite să controlați imprimarea din fișierele M. Rezultatul poate fi trimis direct la imprimanta implicită sau salvat într-un fișier specificat.

5. Exemple de programe

Această secțiune listează cei mai comuni algoritmi utilizați în analiza datelor multidimensionale. Sunt luate în considerare atât cele mai simple metode de transformare, centrare și scalare a datelor, cât și algoritmi de analiză a datelor - PCA, PLS.

5.1. Centrare și scalare

Analiza necesită adesea transformarea datelor originale. Cele mai utilizate metode de transformare a datelor sunt centrarea și scalarea fiecărei variabile prin abaterea standard. În codul funcției de centrare a fost dată matricea. Prin urmare, mai jos este afișat doar codul funcției, care cântare date. Vă rugăm să rețineți că matricea originală trebuie să fie centrată

funcția Xs = scalare (X)
% scalare: matricea de ieșire este Xs
% matricea X trebuie să fie centrată

Xs = X * inv (diag (std (X)));

% sfârșit de scalare

5.2. SVD / PCA

Cel mai mod popular compresia datelor în analiza multivariată este analiza componentelor principale (PCA). Din punct de vedere matematic, PCA este o descompunere a matricei originale X, adică reprezentarea sa ca produs a două matrici Tși P

X = TP t + E

Matrice T se numește matricea scorurilor, matricea se numește matricea reziduală.

Cel mai simplu mod de a găsi matrici Tși P- utilizați descompunerea SVD printr-o funcție MatLab standard numită svd .

funcția = pcasvd (X)

Svd (X);
T = U * D;
P = V;

% sfârşitul pcasvd

5.3 PCA / NIPALS

Pentru a construi conturi și încărcări PCA, se folosește algoritmul recurent NIPALS, care calculează o componentă la fiecare pas. Matricea inițială mai întâi X se transformă (cel puțin - centrat; vezi) și se transformă într-o matrice E 0 , A= 0. Apoi se aplică următorul algoritm.

t 2. p t = t t EA / t t t 3. p = p / (p t p) ½ 4. t = EA p / p t p 5. Verificați convergența, dacă nu, atunci treceți la 2

După calcularea următoarei ( A th) componente, presupunem tA=tși pA=p E A+1 = EAt p A pe A+1.

Codul algoritmului NIPALS poate fi scris chiar de cititori; în acest tutorial, autorii oferă propria versiune. Când calculați PCA, puteți introduce numărul de componente principale (număr variabilPC). Dacă nu știți de câte componente sunt necesare, trebuie să scrieți = pcanipals (X) pe linia de comandă și apoi programul va seta numărul de componente egal cu cea mai mică dintre dimensiunile matricei originale. X.

funcția = pcanipals (X, numărPC)

% calcul al numărului de componente
= dimensiunea (X); P =; T =;

Dacă lungimea (numărPC)> 0
pc = numărPC (1);
elseif (lungime (numberPC) == 0) & X_r< X_c
pc = X_r;
altfel
pc = X_c;
Sfârșit;

pentru k = 1: buc
P1 = rand (X_c, 1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)) "; P1 = P1 / norma (P1); T1 = X * P1; d = T1" * T1;

În timp ce d - d0> 0,0001;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / norma (P1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / norma (P1); T1 = X * P1; d = T1 "* T1;
Sfârșit

X = X - T1 * P1; P = pisica (1, P, P1 "); T =;
Sfârșit

Cum se calculează PCA utilizând suplimentul Chemometrics este descris în tutorial

5.4 PLS1

Cea mai populară metodă de calibrare multivariată este metoda proiecției latente (PLS). Această metodă realizează o descompunere simultană a matricei predictoare Xși matrice de răspuns Y:

X=TP t + E Y=Uq t + F T=XW(P t W) –1

Proiecția este construită în mod consecvent - astfel încât să maximizeze corelația dintre vectorii corespunzători X-conturi tAși Y-conturi uA... Dacă blocul de date Y include răspunsuri multiple (de ex. K> 1), puteți construi două proiecții ale datelor inițiale - PLS1 și PLS2. În primul caz, pentru fiecare dintre răspunsuri y k este construit propriul său subspațiu de proiecție. În același timp, conturile T (U) și încărcați P (W, Q) depind de răspunsul utilizat. Această abordare se numește PLS1. Pentru metoda PLS2, este construit un singur spațiu de proiecție, care este comun pentru toate răspunsurile.

O descriere detaliată a metodei PLS este dată în această carte.Pentru a construi conturi și încărcări PLS1, se folosește un algoritm recurent. Matricele inițiale mai întâi Xși Y centru

= mc (X);
= mc (Y);

și se transformă într-o matrice E 0 și vector f 0 , A= 0. Apoi li se aplică următorul algoritm

1. w t = fA t E A 2. w = w / (w t w) ½ 3. t = EA w 4. q = t t fA / t t t 5. u = qfA / q 2 6. p t = t t EA / t t t

După calcularea următoarei ( A th) componente, presupunem tA=tși pA=p... Pentru a obține următoarea componentă, trebuie să calculați reziduurile E A+1 = EAt p t și aplicați-le același algoritm, înlocuind indexul A pe A+1.

Iată codul acestui algoritm, luat din carte

funcția = pls (x, y)
% PLS: calculează o componentă PLS.
% Vectorii de ieșire sunt w, t, u, q și p.
%
% Alegeți un vector din y ca vector de pornire u.

u = y (:, 1);

% Criteriul de convergență este stabilit foarte ridicat.
kri = 100;

% Comenzile de aici până la capăt se repetă până la convergență.
în timp ce (kri> 1e - 10)

% Fiecare vector de pornire u este salvat ca uold.
uold = u; w = (u "* x)"; w = w / normă (w);
t = x * w; q = (t "* y)" / (t "* t);
u = y * q / (q "* q);

% Criteriul de convergenţă este norma u-uold împărţită la norma u.
kri = norm (uold - u) / norm (u);
Sfârșit;

% După convergenţă, se calculează p.
p = (t "* x)" / (t "* t);

% Sfârșitul pls

Despre calcularea PLS1 cu un supliment ChimiometrieAdauga la descrise în manualul Metode de proiecție în sistemul Excel.

5.5 PLS2

Pentru PLS2, algoritmul este următorul. Matricele inițiale mai întâi Xși Y transformă (cel puțin - centru; vezi), și se transformă în matrici E 0 și F 0 , A= 0. Apoi li se aplică următorul algoritm.

1. Alegeți vectorul de pornire u 2. w t = u t E A 3. w = w / (w t w) ½ 4. t = EA w 5. q t = t t FA / t t t 6. u = FA q/ q t q 7. Verificați convergența, dacă nu, atunci treceți la 2 8. p t = t t EA / t t t

După calcularea următoarei ( A-th) Componentele PLS2 trebuie puse: tA=t, pA=p, wA=w, uA=uși q a = q... Pentru a obține următoarea componentă, trebuie să calculați reziduurile E A+1 = EAt p t si FA +1 = F Atq t și aplicați-le același algoritm, înlocuind indexul A pe A+1.

Iată codul, care este și el împrumutat din carte.

funcția = plsr (x, y, a)
% PLS: calculează o componentă PLS.
% Matricele de ieșire sunt W, T, U, Q și P.
% B conține coeficienții de regresie și SS sumele
% pătrate pentru reziduuri.
% a este numărul de componente.
%
% Pentru componente: utilizați toate comenzile pentru a termina.

Pentru i = 1: a
% Calculați suma pătratelor. Utilizați funcția ss.
sx =;
sy =;

% Utilizați funcția pls pentru a calcula o componentă.
= pls (x, y);

% Calculați reziduurile.
x = x - t * p ";
y = y - t * q ";

% Salvați vectorii în matrice.
W =;
T =;
U =;
Q =;
P =;
Sfârșit;

% Calculați coeficienții de regresie după buclă.
B = W * inv (P "* W) * Q";

% Adăugați SS rezidual final la suma vectorilor pătratelor.
sx =;
sy =;

% Faceți o matrice a vectorilor ss pentru X și Y.
SS =;

% Calculați fracția de SS utilizată.
= dimensiune (SS);
tt = (SS * diag (SS (1,:). ^ (- 1)) - cele (a, b)) * (-1)

% Sfârșitul plsr

functie = ss (x)
% SS: calculează suma pătratelor unei matrice X.
%

ss = suma (suma (x. * x));
% Sfârșitul ss

Despre calcularea PLS2 cu un supliment ChimiometrieAdauga la descrise în manualul Metode de proiecție în sistemul Excel.

Concluzie

MatLab este un instrument de analiză a datelor foarte popular. Potrivit sondajului, este folosit de până la o treime din toți cercetătorii, în timp ce programul Unsrambler este folosit de doar 16% dintre oamenii de știință. Principalul dezavantaj al MatLab este prețul ridicat. În plus, MatLab este bun pentru calculele de rutină. Lipsa de interactivitate face incomod atunci când se efectuează căutări, calcule de cercetare pentru seturi de date noi, neexplorate.

Sperăm că v-am ajutat să rezolvați problema cu fișierul MATLAB. Dacă nu știți de unde puteți descărca o aplicație din lista noastră, faceți clic pe link (acesta este numele programului) - veți găsi informații mai detaliate despre locația de unde puteți descărca versiunea de instalare securizată a aplicației necesare aplicarea.

Vizitarea acestei pagini ar trebui să vă ajute să răspundeți în mod specific la aceste întrebări sau la întrebări similare:

  • Cum se deschide un fișier cu extensia MATLAB?
  • Cum pot converti un fișier MATLAB într-un alt format?
  • Care este extensia de format de fișier MATLAB?
  • Ce programe acceptă fișierul MATLAB?

Dacă după ce ați vizualizat materialele de pe acest site, încă nu ați primit un răspuns satisfăcător la niciuna dintre întrebările de mai sus, înseamnă că informațiile despre fișierul MATLAB prezentate aici nu sunt complete. Contactează-ne folosind formularul de contact și scrie ce informații nu ai găsit.

Ce altceva ar putea cauza problema?

Pot exista mai multe motive pentru care nu puteți deschide un fișier MATLAB (nu doar absența unei aplicații corespunzătoare).
in primul rand- Fișierul MATLAB poate fi legat incorect (incompatibil) cu aplicația instalată pentru a-l menține. În acest caz, trebuie să schimbați singur acest link. În acest scop, faceți clic dreapta pe fișierul MATLAB pe care doriți să îl editați, faceți clic pe opțiune „Pentru a deschide cu”și apoi selectați programul pe care l-ați instalat din listă. După aceasta, problemele cu deschiderea fișierului MATLAB ar trebui să dispară complet.
În al doilea rând- fișierul pe care doriți să-l deschideți poate fi pur și simplu deteriorat. Apoi, cea mai bună soluție este să găsești o nouă versiune sau să o descărcați din nou din aceeași sursă ca înainte (poate că din anumite motive în sesiunea anterioară descărcarea fișierului MATLAB nu a fost finalizată și nu poate fi deschis corect).

Vrei să ajuți?

Dacă aveți informații suplimentare despre extensia de fișier MATLAB, vă vom fi recunoscători dacă le veți partaja utilizatorilor site-ului nostru. Utilizați formularul furnizat și trimiteți-ne informațiile despre fișierul dvs. MATLAB.

Lecția numărul 19.

Lucrul cu fișiere

    Deschiderea și închiderea fișierelor

    Operații cu fișiere binare

    Operații cu fișiere formatate

    Poziționarea fișierelor

    Dosare specializate

Fișierele sunt obiecte destul de comune în sistemul MATLAB. Unele dintre tipurile de fișiere au fost deja discutate în capitolele precedente. Această lecție acoperă proprietățile fișierelor care sunt independente de tipul lor și se aplică oricărui fișier.

Deschiderea și închiderea fișierelor

Fişier de obicei o colecție de date, unite printr-un singur nume. Tipul fișierului este de obicei determinat de extensia acestuia. Considerăm fișierul ca un întreg, deși fizic pe disc poate fi reprezentat de mai multe zone - se spune că în acest caz fișierul este fragmentat.

Înainte de a utiliza orice fișier, trebuie să fie deschis,și la sfârșitul utilizării - închis. Multe fișiere pot fi deschise și citite în același timp. Să luăm în considerare comenzile pentru deschiderea și închiderea fișierelor.

    Comanda open name, unde numele trebuie să conțină o matrice de caractere sau o variabilă simbolică, deschide fișiere în funcție de analiza parametrului nume și a extensiei din numele numelui:

    • variabilă - deschide o matrice numită după nume în Editorul de matrice;

      Mat - deschide un fișier, salvează variabile într-o structură din spațiul de lucru;

      Fig - îl deschide în Editorul de proprietăți;

      M - deschide un fișier m în editor-depanator;

      Mdl - deschide modelul în Simulink;

      R - deschide, dacă există, un fișier m cu același nume;

      Html - Deschide un document HTML în browserul de ajutor.

Dacă fișierele cu extensia există în calea MATLAB, atunci fișierul care este returnat de comanda care nume este deschis, dacă nu, atunci fișierul din sistemul de fișiere. Dacă fișierul nu are o extensie de nume, atunci este deschis de programul al cărui format de fișier ar fi fost detectat de funcția igpsiGname ") În mod implicit, pentru toate fișierele cu alte terminații decât cele enumerate mai sus, se apelează openother. Apeluri deschise funcțiile orepxxx, unde xxx este extensia fișierului. Excepțiile sunt variabilele spațiului de lucru pentru care este apelat openvar și graficele pentru care este apelat openim. Prin crearea fișierelor t numite orepxxx, utilizatorii pot modifica gestionarea fișierelor și pot adăuga noi extensii la listă. Închideți fișierele deschise când ajuta la deschidere, ai nevoie de la editorii numiti onxxx.

    Uigetfile (FILTERSPEC. Titlu). Deschide un dialog numit Titlu și un filtru FILTERSPEC (de exemplu, o matrice de celule care conține extensii de fișiere) și returnează fișierul selectat de utilizator și calea către acesta. Returnează FILENAME = 0 dacă fișierul nu există sau dacă utilizatorul a făcut clic pe Anulare. = uigetfile (FILTERSPEC, Titlu. X. Y) plasează caseta de dialog în punctul X, Y (coordonate în pixeli).

Exemplu:

Uigetfile ("*. M; *. Fig; *. Mat: *. Mdl". "Toate fișierele MATLAB (* .m, * .fig, * .mat. * .Mdl)": ...

    Uiputfile (FILTERSPEC. TITLE) salvează fișierul într-un dialog controlat de utilizator. Parametrii sunt aceiași ca în funcție uigetfile.

    Comanda ui open deschide un dialog, iar dacă utilizatorul a selectat un fișier cu celebra extensie, îl numește folosind open sau dacă numele fișierului are extensie necunoscută apoi uigetfile este apelat. Argumentele de intrare pentru uiopen pot fi mat lab, load, figure, simulink, editor. Fără argumente de intrare sau cu un argument de intrare matlab, caseta de dialog vă solicită să selectați * .m, * .fig, * .mat,* .mdl (dacă este instalat Simulink), *. cdr (dacă fluxul de stare este setat), * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb (dacă este instalat Real-Time Workshop). Cu argumentul de încărcare - * .mat. Cu argumentul figure, sunt oferite * .fig; simul ink - * .mdl, editor - * .m, * .mdt * .cdr, * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb.

Exemplu:

uiopen figura.

    Comanda uiload deschide un fișier într-un dialog controlat de utilizator folosind comanda load.

Funcția de import ui lansează Import Wizard, care importă dintr-un fișier din folderul curent sau clipboard-ul Windows. Ea corespunde alegerii Import Data din meniul File sau alegerea Paste Special din meniul MATLAB Edit.

    Import Ui (FILENAME) - lansează Expertul de import prin deschiderea FILENAME. Expertul de import arată datele pentru o previzualizare. Datele și reprezentarea lor ca variabile MATLAB apar în fereastra de previzualizare. Datele, textul și anteturile reale sunt reprezentate de diferite variabile MATLAB. Pentru datele ASCII, trebuie să vă asigurați că Expertul de import recunoaște delimitatorii de coloane. Pe cont propriu, poate recunoaște doar o filă, spațiu, virgulă sau punct și virgulă. Trebuie să faceți clic pe butonul Următorul și în fereastra următoare fie confirmați selecția delimitatorului făcută de Expert, fie selectați Altele și introduceți orice delimitator.

    ui import ("-f i le") - mai întâi afișează dialogul de selecție a fișierelor.

    ui import ("-pastespecial") - mai întâi afișează conținutul clipboard-ului Windows pentru previzualizare.

    S = ui import (...) stochează variabilele rezultate ca câmpuri ale structurii S.

    Comanda uisave este o salvare controlată de utilizator (comanda de salvare este descrisă în lecția 2) cu un dialog Windows.

    Funcția Saveas - salvează un desen sau un model Simulink în formatul dorit pe un mediu de stocare sau pe un dispozitiv activat pentru imprimare.

    Funcția saveas (H, „FILENAME”) - salvează datele în conformitate cu comanda grafică a descriptorului H din fișierul FILENAME. Formatul fișierului este determinat de extensia numelui FILENAME.

    Funcția saveas (H. „FILENAME”. „FORMAT”) - face același lucru, dar cu parametrul FORMAT (formatul este specificat în același mod ca extensia numelui fișierului și poate diferi de acesta). FORMAT are prioritate față de extensia numelui de fișier. Parametrii funcției:

Exemple:

saveas (gcf. „ieșire”, „fig”) saveasCgcf, „ieșire”, „bmp”)

Comanda sau funcția de ștergere șterge un fișier sau un obiect grafic.

    Șterge nume fișier șterge fișierul din folderul curent. Poate fi utilizat *. Utilizare preferată cu o intrare sub forma unei funcții de ștergere („fișier mw”) când numele fișierului este un șir.

    şterge (H) şterge obiect grafic cu descriptorul N. Dacă acest obiect este o fereastră, atunci este închis în prealabil.

    Funcția de închidere (H) închide doar ferestrele grafice. Pentru a închide fișierele, utilizați comanda f close.

Pentru a scrie fișiere pe disc, utilizați comanda de salvare, care este folosită în forme destul de evidente:

salva

salvare nume fișier salvare nume fișier varl var2 ... salvare ... opțiune salvare ("nume fișier", ...)

În consecință, comanda de încărcare este utilizată pentru a citi fișierele de pe disc:

sarcină

incarca nume fisier incarca nume fisier X Y Z

incarca nume fisier -ascii incarca nume fisier -mat

În aceste comenzi, numele fișierului este specificat conform regulilor adoptate în sisteme de operare Clasa MS-DOS. Aceste comenzi sunt de obicei duplicate de butoanele din bara de instrumente și de browserul de fișiere.

Operații cu fișiere binare

Binar, sau binar, se numesc fișiere, ale căror date sunt coduri de mașină. Operațiunile de bază cu astfel de coduri sunt enumerate mai jos.

    fopen (filename, permission) - deschide un fișier cu numele filename și parametrul specificat în permission, și returnează identificatorul fid cu valoarea: 0 - citit de la tastatură (permisiunea este setată la „r”); 1 - ieșire pe afișaj (permisiunea este setată la „a”); 2 - afișarea unui mesaj de eroare (permisiunea este setată la „a”); -1 - eșec la deschiderea fișierului cu ieșire mesaje mesaje despre tipul de eroare. Fid este adesea folosit ca argument de către alte funcții și programe I/O. Numele fișierului poate conține calea către fișier.

Dacă fișierul de deschis pentru citire nu este găsit în directorul curent, atunci funcția fopen caută fișierul în calea specificată în MATLAB.

Parametrul de permisiune poate lua una dintre următoarele valori de bază (pentru alții, vezi sistem de ajutor):

    "r" - deschideți fișierul pentru citire (implicit);

    "r +" - fișier deschis pentru citire și scriere;

    "w" - ștergeți conținutul unui fișier existent sau creați unul nou și deschideți-l pentru scriere;

    „a” - creați și deschideți un fișier nou sau deschideți unul existent pentruînregistrările atașate la sfârșitul fișierului.

Adăugarea unui „b” la această linie (implicit) spune sistemului să deschidă fișierul în modul binar.

Adăugarea „t” în loc de b la această linie, de exemplu „rt”, în sistemele de operare care fac diferența între fișierele text și cele binare, indică sistemului să deschidă fișierul în modul text. De exemplu, în toate versiunile de MATLAB pentru Windows / MS-DOS și VMS, nu puteți deschide un fișier text fără parametrul „rt”. Când introduceți fișiere folosind fopen în modul text, toate cărucioarele revin înainte ca caracterul să fie eliminat linie nouă.

    Fopentfilename.permission, format) - Deschide un fișier așa cum este descris mai sus, returnând un ID și un mesaj de fișier. În plus, valoarea parametrului format vă permite să determinați cu exactitate format numeric... Există 8 formate posibile, a căror descriere poate fi găsită în sistemul de ajutor. În special, șirul de format poate fi „nativ” (formatul computerului pe care este instalat sistemul), „vax”, „sgau” (calculatoare VAX și Cray) și așa mai departe.

Anumite apeluri la fread sau fwrite pot suprascrie formatul numeric specificat în apelul la fopen.

    fids = fopen С all ") - returnează un șir-vector care conține identificatorii tuturor fișierelor deschise, excluzând fluxurile standard О, 1 și 2. Numărul de elemente vectoriale este egal cu numărul de fișiere deschise de utilizator;

    Fopen (fid) - Se întoarce Numele complet fișier, linia .permission și linia de format. Dacă sunt utilizate valori fid invalide, sunt returnate șiruri goale pentru toate argumentele de ieșire.

Comanda fclose închide fișierul. Are următoarele opțiuni.

    Stare = fclose (fid) - închide fișierul dacă este deschis. Returnează starea stării fișierului, egală cu 0 dacă închiderea a avut succes și -1 în caz contrar. Argumentul fid este identificatorul asociat fișierului deschis (vezi funcția fopen pentru o descriere mai detaliată);

    status = fclose ("toate") închide toate fișierele deschise. Returnează 0 la succes și -1 în caz contrar.

Un exemplu de deschidere și închidere a unui fișier:

"Fid = fopen (" c: \ ex "." A + ") fid = 4

»Fclose (4)

ans =

    Fread (fid, dimensiune, precizie) - citește datele binare din fișierul dat și le plasează în matricea A. Numărul de argumente de ieșire conține numărul de elemente citite cu succes. Valoarea fid este un număr întreg returnat de funcția fopen; dimensiunea este un argument care specifică cantitatea de date de citit. Dacă dimensiunea nu este specificată, f read citește datele până la sfârșitul fișierului.

Sunt utilizați următorii parametri de dimensiune:

    n - citește n elemente într-un vector coloană;

    Citește câte elemente este necesar pentru a umple matricea thp.

Umplerea se face pe coloane. Dacă există puține elemente în fișier, atunci matricea este umplută cu zerouri. Dacă citirea ajunge la sfârșitul fișierului fără a umple matricea cu dimensiunea necesară, atunci matricea este umplută cu zerouri. Dacă apare o eroare, citirea se oprește la ultima valoare citită. Parametrul de precizie este un șir care determină precizia numerică a valorilor de citire, controlează numărul de biți citiți pentru fiecare valoare și interpretează acești biți ca un număr întreg, virgulă mobilă sau caracter

    Fread (fid, size.precision, skip) - Include un argument de ignorare arbitrar care specifică numărul de octeți care trebuie săriți după fiecare citire. Acest lucru poate fi util la extragerea datelor din zone necontigue din înregistrări cu lungime fixă. Dacă precizia este într-un format de biți, cum ar fi „bitN 1 sau „ubitN”, valoarea de ignorare este specificată ~ biți. Lista extinsă valori posibile parametrul de precizie poate fi găsit în sistemul de ajutor MATLAB;

    count = fwrite (fid, A, precision) - scrie elementele matricei A într-un fișier, reprezentându-le cu o precizie specificată. Datele sunt scrise în fișier coloană cu coloană, iar argumentul de ieșire count conține numărul de elemente scrise cu succes. Valoarea fid este un număr întreg din funcția f deschisă. Adaugă întoarceri de transport înainte de începerea unei noi linii;

    count = fwrite (fid.A, precizie, skip) - face același lucru, dar include un argument de skip arbitrar care specifică numărul de octeți care trebuie săriți înainte de fiecare scriere. Acest lucru este util atunci când se inserează date în zone necontigue din înregistrări cu lungime fixă. Dacă precizia este într-un format de biți, cum ar fi „bitN” sau „ubitN”, valoarea de ignorare este specificată în biți.

Exemple:

»Fid = fopen (" c: \ prim "," a + ")

Fid =

»A = magie (7)

A =

30

39

48

1

10

19

28

38

47

7

9

18

27

29

46

6

8

17

26

35

37

5

14

16

25

34

36

45

13

15

24

33

42

44

4

21

23

32

41

43

3

12

22

31

40

49

2

11

20

»Număr = fwrite (j.A)

Număr =

»Stare = fclose (3)

Stare =

»Fid

Fopen ("c: \ prim". "R")

Fid =

„= Fread (3.)

30

39

48

1

10

19

28

38

47

7

9

18

27

29

46

6

8

17

26

35

37

5

14

16

25

34

36

45

13

15

24

33

42

44

4

21

23

32

41

43

3

12

22

31

40

49

2

11

20

numără =

Operații cu fișiere formatate

Fișierele care conțin date formatate sunt apelate fișiere formatate. Mai jos sunt funcțiile care sunt utilizate pentru a lucra cu astfel de fișiere.

    Linie = fgetl (fid) - Returnează un șir din fișier cu identificatorul fid cu caracterul de final de linie eliminat. Dacă fgetl detectează sfârșitul fișierului, returnează -1 (vezi fopen pentru mai multe detalii despre fid);

    Line = f gets (fid) - Returnează linia din fișierul cu identificatorul fid fără a elimina caracterul de final de linie. Dacă fgets detectează sfârșitul fișierului, returnează -1;

    Line = fgets (fid.nchar) - Returnează nu mai mult de nchar din primele caractere ale liniei. Nu se citesc caractere suplimentare după caracterul de sfârșit de linie sau de sfârșit de fișier (vezi exemple pentru funcția fscanf);

    Count = fprintf (fid.format, A ....) - formatează datele conținute în partea reală a matricei A, sub controlul șirului de format și le scrie într-un fișier cu identificatorul fid. Funcția fprintf returnează numărul de octeți scriși. Valoarea fid este un număr întreg returnat de funcția fopen.

Dacă omiteți identificatorul fid în lista de argumente a funcției fprintf, atunci rezultatul va fi imprimat pe ecran, la fel ca atunci când utilizați ieșirea standard (fid = l).

    fprintf (format, A ....) - scrierea se realizează pe dispozitiv standard- ecran (dar nu la dosar). Șirul de format definește sistemul de numere, alinierea, cifre semnificative, lățimea câmpului și alte atribute ale formatului de ieșire. Poate conține litere obișnuite ale alfabetului împreună cu calificative, caractere de aliniere etc.

Tabelul 19.1. Caractere speciale în șiruri de format

Simbol

Descriere

\ n

Linie nouă

\ t

Filă orizontală

\ b

Backspace un caracter

\ r

Retur transport

\ f

Pagina noua

\\

Backslash

\" sau "

ghilimele unice

%%

La sută

Funcția fprintf se comportă ca echivalentul ANSI C fprintf O funcție, cu unele excepții și extensii. Masa 19.1 descrie caracterele speciale găsite în șir de format... Pentru a afișa date numerice sau de caractere într-un șir de format, utilizați specificatori, enumerate în tabel. 19.2.

Tabelul 19.2. Specificatori de format de ieșire

Specificatorul

Descriere

% d Sistemul zecimal denumiri (cu semn)
*Cu Un singur personaj

% e

Notarea exponențială a numerelor folosind „e” în partea inferioară înregistrare, de exemplu 3.1415e + 00

Notarea exponențială a numerelor folosind „E” din partea de sus înregistrare, de exemplu 3.1415Е + 00

% f

Sistem de notație în punct fix

% g

Cele mai compacte dintre% e și% f. Zerourile finale nu sunt afișate

% G

La fel ca% d, dar folosește majuscule pentru „E”

%O

Notație octală (fără semn)

% s

Șir de caractere

% u

Notație zecimală (fără semn)

% X


Notație hexazecimală folosind simboluri literă mică("A" ... "f")

% X

Notație hexazecimală folosind caractere majuscule ("A" ... "F")

Pot fi introduse caractere suplimentare între semnul de procent și litera din specificator. Semnificația lor este explicată în tabel. 19.3.

Tabelul 19.3. Opțiuni pentru specificatorul de format

Simbol

Descriere

Exemplu

Semnul minus" (-)

Argumente convertite cu justificare la stânga

% -5,2d

Semnul plus (+)

Tipăriți întotdeauna un semn numeric (+ sau -)

% + 5,2d

Zero (0)

Umplutură cu zerouri în loc de spații

% 05,2d

Numerele

Specifică numărul minim de caractere care trebuie tipărite

% 6f

Cifre (după punct)

Numărul de după punct determină numărul de caractere tipăritela dreapta punctului zecimal

% 6,2f

    A = fscanf (fid, format) - citește toate datele din fișierul cu identificatorul, fid, îl convertește în funcție de valoarea parametrului format și îl returnează ca o matrice A. Valoarea identificatorului fid este un număr întreg returnat de functia fopen. Parametrul format este un șir care specifică formatul datelor de citit;

    Fscanf (fid.format, size) - Citește cantitatea de date specificată de parametrul dimensiune, o convertește în funcție de parametrul de format și returnează, împreună cu numărul de elemente citite cu succes, contor. Parametrul dimensiune este un argument arbitrar care specifică cantitatea de date de citit. Următoarele valori sunt valabile:

    • inf - citirea elementelor până la sfârșitul fișierului și plasarea lor într-un vector coloană care conține același număr de elemente ca și în fișier;

      Citește câte elemente este necesar pentru a umple matricea de dimensiuni thp. Umplerea se face pe coloane. Valoarea n (dar nu!) poate lua valoarea Inf.

Șirul de format este format din personaje obișnuiteși/sau specificatori. Specificatorii indică tipul de date citite și includ caracterul %, opțiunea lățimii câmpului și formatarea caracterelor. Caracterele de format posibil sunt listate în tabel. 19.4.

Tabelul 19.4. Formatare caractere utilizate de funcția fscanf

Simbol

Descriere

O succesiune de caractere; parametrul de lățime a câmpului determină numărul de caractere citite

% d

Zecimal

% e,% f,% g

Număr în virgulă mobilă

% i

Număr întreg cu semnătură

% o

Numărul octal cu semn

% s

O secvență de caractere fără spații albe

% u

Număr întreg zecimal cu semn

% X

Număr întreg hexazecimal cu semn

[...]

Secvență de personaje

Între simbol % iar caracterul de format are permisiunea de a introduce următoarele caractere:

    Un asterisc (*) înseamnă că valoarea corespunzătoare nu trebuie să fie stocată în matricea de ieșire;

    Un șir de numere specifică latime maxima câmpuri;

    Litera denotă dimensiunea obiectului rezultat: h pentru un număr întreg scurt (de exemplu, % n d), 1 pentru un număr întreg lung (de exemplu, % ld) sau pentru un număr cu virgulă mobilă cu precizie dublă (de exemplu, % lg ).

Exemple:

„X = 0: pi / 10: pi: y-;

»Fid = fopent" c: \ sin.txt ". V);

»Fprintf (fid." X5.3f * 10.6f \ n ".y): fclose (fid);

0.000 0.000000

0.314 0.309017

0.628 0.587785

0.942 0.809017

1.257 0.951057

1.571 1.000000

1.885 0.951057

2.199 0.809017

2.513 0.587785

2.827 0.309017

3.142 0.000000

»Fid = fopen (" c: \ sin.txt "." R ");

»Q = fscanf (fid." * G ".):

"Q"

ans =

0.3140 0.3090

0.6280 0.5878

0.9420 0.8090

1.2570 0.9511

1.5710 1.0000

1.8850 0.9511

2.1990 0.8090

2.5130 0.5878

2.8270 0.3090

»Fgetl (fid)

Răspuns =

3.142 0.000000

»Fgets (fid)

Răspuns =

»Fclose (fid)

Răspuns =

Poziționarea fișierelor

Când fișierele sunt citite și scrise, ele sunt reprezentate în mod convențional ca date liniare, precum înregistrarea pe o bandă magnetică continuă. Locul din care se află citirea în acest moment (sau poziția din care inregistrare in curs), este determinată de o specială indicator. Fișierele de acces secvențial sunt vizualizate strict de la început până la sfârșit și în fișiere acces aleatoriu indicatorul poate fi plasat oriunde din care sunt scrise sau citite datele fișierului.

Astfel, indicatorul oferă poziționarea fișierului. Sunt disponibile un număr de funcții de poziționare:

    Eofstat = feof (fid) - Verifică dacă s-a ajuns la sfârșitul fișierului cu identificatorul fid. Returnează 1 dacă indicatorul este la sfârșitul fișierului, 0 în caz contrar;

    Mesaj = ferror (fid) - Returnează informații despre eroare ca șir de mesaj. Argumentul fid este identificatorul fișierului deschis (vezi funcția fopen pentru descrierea sa detaliată);

    Message = f error (f id, "clear") - șterge indicatorul de eroare pentru fișierul specificat;

    Ferror (.) - Returnează errnum al ultimei operațiuni I/O pentru fișierul specificat.

Dacă ultima operațiune I/O efectuată pe fișierul specificat fid a avut succes, valoarea mesajului este linie goală, iar errnum este 0.

O eroare diferită de zero indică faptul că a apărut o eroare la ultima operație I/O. Parametrul de mesaj conține un șir care conține informații despre natura erorii care a apărut.

Exemplu:

»Fid = fopen (" c: \ exemplul "." A + ")

Fid =

»T = fread (3,)

Matrice goală: 4-de-0

»Groare (3)

Răspuns =

Fișierul este deschis pentru citire? ... ... ...

    frewind (fid) - setează indicatorul de poziție la începutul fișierului cu identificatorul fid;

    Stare - fseekCfid, offset, origine) - setează indicatorul din fișierul cu identificatorul fid la poziția specificată - după octet, specificat de parametru offset față de origine.

Argumente:

    Fid este identificatorul de fișier returnat de funcția fopen;

    offset este o valoare care este interpretată după cum urmează:

    • offset> 0 - schimbă poziția pointerului cu offset octeți spre sfârșitul fișierului;

      offset = 0 - nu modifică poziția indicatorului;

      decalaj<0 - изменяет позицию указателя на offset байт в направлении к началу файла;

    Originea este un argument care ia următoarele valori:

    • „bof sau -1 este începutul fișierului;

      „cof” sau 0 este poziția curentă a indicatorului în fișier;

      „eof” sau 1 - sfârșitul fișierului;

    status este un argument de ieșire. Valoarea este 0 dacă operațiunea fseek a avut succes și -1 în caz contrar. Dacă apare o eroare, utilizați funcția ferror pentru mai multe detalii;

    position = ftel I (fid) - Returnează poziția pointerului pentru fișierul cu fid, obținut cu ajutorul funcției fopen. Argumentul de ieșire de poziție este un număr întreg nenegativ care specifică poziția pointerului, în octeți, față de începutul fișierului. Dacă cererea nu a avut succes, poziția este -1. Utilizați funcția ferror pentru a afișa natura erorii.

Exemple:

»F id-fopen (" c: \ exemplu "." A + ")

Fid =

„Număr = fwrite (3, magie (6))

Număr = 36

»FtelK3)

Răspuns =

»Fwinind (3): ftell (3)

Răspuns =

„Fseek (3.12.0); ftell (3)

ans =

»Feof (3)

Răspuns =

»Fclose (3)

Răspuns =

    S = sprintf (format, A, ...) - formatează datele din matricea A în formatul specificat de parametrul format și creează o variabilă șir s din acestea;

    SprintfCformat, A ....) - similar cu funcția descrisă anterior, dar returnează suplimentar un șir de eroare errmsg dacă a apărut o eroare sau un șir gol în caz contrar. Șirul de format definește sistemul de numere, alinierea, cifrele semnificative, lățimea câmpului și alte atribute ale formatului de ieșire. Poate conține caractere obișnuite împreună cu calificative, caractere de aliniere și așa mai departe. Funcția fprintf se comportă ca funcția ANSI C analogă fprintf 0, cu unele excepții și extensii.

Exemple:

„SprintfC” * 0,5 g „. (L + sqrt (7)) / 4)

ans =

0.91144

»SprintfC „% s”,"Hei")

ans =

Hei

Funcția sscanf este similară cu funcția fscanf, cu excepția faptului că citește date dintr-o variabilă simbolică MATLAB, mai degrabă decât dintr-un fișier.

    А = sscanf (s, format) - citește datele din variabila simbolică s, le convertește în funcție de valoarea formatului și creează pe baza acestor date matricea A. Parametrul format determină formatul datelor de citit;

    A = sscanf (s, format, size) - citește cantitatea de date specificată de parametrul dimensiune și o convertește în funcție de șirul de format. Parametrul dimensiune este un argument care specifică cantitatea de date de citit. Următoarele valori sunt valabile:

    • n - citirea a n elemente într-un vector coloană;

      inf - citirea elementelor până la sfârșitul unei variabile simbolice și plasarea lor într-un vector coloană care conține același număr de elemente ca într-o variabilă șir;

      Citește câte elemente este necesar pentru a umple matricea de dimensiuni thp. Umplerea se face pe coloane. Cantitatea n (dar nu!) poate lua valoarea Inf.

    Sscanf (...) - citește datele din variabila caracter s, le convertește în funcție de valoarea formatului și le întoarce în matricea A. Parametrul count este un output.argument care returnează numărul de elemente citite cu succes; errmsg este un argument de ieșire care returnează un șir de eroare dacă a apărut o eroare și un șir gol în caz contrar. nextindex este un argument de ieșire care conține un număr cu unu mai mult decât numărul de caractere din s.

Șirul de format este format din caractere obișnuite și specificatori. Specificatorii indică tipul de date și includ caracterul %, opțiunea lățimii câmpului și formatarea caracterelor. Explicațiile pot fi găsite în descrierea funcției fscanf.

Exemplu:

"S =" 4,83 3,16 22 45 ";

»= Sscanf (s."% F ")

A =

4.8300 - 3.1600

22.0000

45.0000

Err =

următorul =

Dosare specializate

Funcțiile de mai jos se referă la unele fisiere specializate:

    M = dlmread (nume fișier, delimitator) - Citește datele din numele fișierului cu un delimitator ASCII, folosind delimitatorul delimitator, într-o matrice M. Folosiți „\ t” i pentru a specifica un delimitator de tab;

    M = dlmreadCfilename.delimiter, gs) - citește datele din numele fișierului cu un delimitator ASCII, folosind delimitatorul delimitator, într-o matrice M, începând cu offset r (pe rânduri) și c (pe coloane). Parametrii r și c se numără începând de la zero, astfel încât r = 0, c = 0 să corespundă primei valori din fișier;

    M = dlmreadCfilename, deli mi ten, r, c, range) - Importă un interval indexat sau numit de date delimitate în format ASCII. Pentru a utiliza un interval de celule, trebuie să definiți parametrul interval ca interval = [TopString. Coloana din stânga. BottomRow, RightColumn].

Argumentele funcției dlmread sunt următoarele:

    Delimitatorul este un caracter care separă elementele matriceale individuale într-o foaie de calcul ASCII;

    (,) - separator implicit;

    R, c - celula foii de calcul din care sunt preluate elementele matricei, corespunzătoare elementelor din colțul din stânga sus al tabelului;

    interval este un vector care definește intervalul de celule din foaia de calcul.

Comanda dlmwrite convertește o matrice MATLAB într-un fișier delimitat de ASCII, care poate fi citit de programele de calcul:

    Dl mwri te (f i 1 ename. A. delimiter) - Scrie matricea A în celula din stânga sus a foii de calcul nume de fișier, folosind delimitator pentru a separa elementele matricei. Folosiți „U” pentru a crea un fișier delimitat de tabulatori. Toate elementele cu valoarea 0 sunt omise. De exemplu, matricea va apărea în fișier ca „1., 2” (dacă separatorul este o virgulă):

    dlmwrite (filename, A, delimiter, r, c) - scrie matricea A în filename, începând de la locația specificată de r și c, folosind delimitatorul;

    info = imfinfo (filename.fmt) - returnează o structură, ale cărei câmpuri conțin informații despre imaginea din fișierul grafic. Argumentul nume de fișier este un șir care specifică numele fișierului grafic, fmt este un șir care specifică formatul fișierului. Fișierul trebuie să fie în directorul curent sau în directorul specificat în calea MATLAB. Dacă imflnfo nu poate găsi un fișier numit filename, caută un fișier numit filename.fmt.

Masa 19.5 arată valorile posibile pentru argumentul fmt.

Tabelul 19.5. Formate grafice acceptate și denumirile acestora

Dacă numele fișierului este un fișier TIFF sau HDF care conține mai multe imagini, atunci 1 nf o este o matrice de structuri cu un element separat (adică cu o structură individuală) pentru fiecare imagine din fișier. De exemplu, informațiile (3) ar conține apoi informații despre a treia imagine din fișier. Multe dintre câmpurile din info depind de fișierul specific și formatul acestuia. Cu toate acestea, primele nouă câmpuri sunt întotdeauna aceleași. Masa 19.6 enumeră aceste câmpuri și le descrie semnificațiile.

Tabelul 19.6. Câmpurile de structură a informațiilor și semnificațiile acestora

Camp Sens
Nume de fișier Un șir care conține numele fișierului; dacă fișierul nu se află în directorul curent, linia conține calea completă către fișier
FileModDate Un șir care conține data la care fișierul a fost modificat ultima dată
Mărime fișier Un număr întreg care indică dimensiunea fișierului în octeți
Format Un șir care conține formatul de fișier specificat de parametrul fmt; pentru fișierele JPEG și TIFF, este returnată o valoare de trei caractere
FormatVersion Un șir sau un număr care descrie versiunea formatului
Lăţime Un număr întreg care indică lățimea imaginii în pixeli
Înălţime Un număr întreg care indică înălțimea imaginii în pixeli
BitDepth Un număr întreg care indică numărul de biți pe pixel
ColorType Un șir care descrie tipul imaginii: „truecolor” pentru o imagine RGB, „grayscale” pentru o imagine în tonuri de gri sau „indexat” pentru o imagine color indexată

    Info = imfinfo (nume fișier) - încearcă să determine formatul fișierului în funcție de conținut. Exemplu:

»Info = irrifinfo (" С: \ expoziție \ Internet.bmр ")

Info =

Nume fișier: „C: \ Expoziție \ Internet.bmr”

Dimensiune fișier: 481078

Format: „bmp”

FormatVersion: „Versiunea 3 (Microsoft Windows 3.x)”

sau o imagine truecolor (RGB) din clasa uint8, comanda imwrite scrie valorile reale ale matricei într-un fișier. Dacă A este de clasa double, comanda imwrite înlocuiește valorile din matrice înainte de a scrie folosind conversia uint8 (round (255 * A)). Această operație convertește numerele cu virgulă mobilă dintr-un interval în numere întregi de 8 biți dintr-un interval. Valorile valide pentru ftnt sunt aceleași ca și pentru comanda imfinfo;

    imwrite (X, map, filename, fmt) - scrie imaginea indexată situată în matricea X și paleta de culori tar corespunzătoare în numele fișierului. Dacă X conține o imagine uint8, comanda imwrite scrie valorile reale ale matricei într-un fișier. Dacă X este dublu, comanda imwrite înlocuiește valorile din matrice înainte de a scrie folosind conversia uintS (X-l). Paleta de gudron trebuie să fie de clasa dublă; funcția imwrite înlocuiește valorile tar folosind conversia uint8 (rotundă (255 * mar));

    imwrite (.... filename) - Scrie imaginea în filename în formatul specificat de extensia fișierului. Extensia poate fi una dintre valorile valide pentru parametrul fmt;

    imwrite (.... Parametru, Valoare ....) definește parametrii care controlează diferite proprietăți ale fișierului de ieșire. Opțiunile sunt utilizate pentru fișierele HDF, JPEG și TIFF;

    M = wklread (nume fișier) - citește foaia de calcul Lotusl23 (WK1) în matricea M;

    М = wklread (filename.r.c) - citește datele pornind de la celula specificată de valorile (r, s). Parametrii r și c sunt bazați pe zero, astfel încât r = 0, c = 0 definesc prima celulă din fișier;

    M = wklread (nume fișier, r, c, interval) - Citește intervalul de valori specificat de interval, unde intervalul poate fi în una dintre următoarele forme:

    • un vector cu patru elemente care definește un interval de celule în formatul [top_line. coloana_stânga, linia de jos, coloana_dreapta];

      un interval de celule definite printr-un șir, de exemplu „A1 ... C5”;

      un nume de interval, specificat ca șir, cum ar fi „Vânzări”.

    wklwrite (filename.M) - Scrie valorile matricei M în numele fișierului al foii de calcul Lotus 123 WK1;

    wklwrite (nume fișier, M, r, c) - scrie date pornind de la celula specificată de valorile (r, s). Parametrii r și c sunt bazați pe zero, deci r = 0, c = 0 definește prima celulă din foaia de calcul.

Masa 19.7 arată formatele de imagine disponibile pentru citire prin funcția imread. Listele de parametri și valorile lor posibile pentru funcția imwrite sunt conținute în tabel. 19.8.

Trebuie remarcat faptul că majoritatea funcțiilor discutate mai sus sunt rareori folosite de utilizatori. Dar sunt utilizate pe scară largă în scopuri sistemice și prezintă un mare interes pentru specialiști.

Tabelul 19.7. Formatele de fișiere și descrierea lor pe scurt

Format Variante
BMP Imagini necomprimate pe 1 biți, 4 biți, 8 biți și 24 biți; Imagini RLE comprimate pe 4 și 8 biți
HDF Bitmaps pe 8 biți, cu sau fără paletă de culori; hărți de biți pe 24 de biți
Jpeg Orice imagini JPEG; Imagini JPEG cu unele extensii utilizate în mod obișnuit
PCX Imagini pe 1 biți, 8 biți și 24 biți
Tiff Orice imagini TIFF, inclusiv imagini necomprimate pe 8 biți și 24 biți; Imagini pe 1 biți, 8 biți și 24 biți cu compresie packbit; Imagini pe 1 bit cu compresie CCITT
XWD Zpixmaps pe 1 și 8 biți; XYBitmaps; Hărți XYPix pe 1 bit

Tabelul 19.8. Parametrii utilizați la scrierea fișierelor grafice

Parametru Sens Valoare implicită
Opțiuni pentru fișierele HDF
"Comprimare" Una dintre următoarele valori: "none", Vie "," jpeg " "rle"
"Calitate" Un număr între 0 și 100; parametrul este acceptat pentru "Compression" = "jpeg"; cu cât numărul este mai mare, cu atât este mai mare calitatea fișierului (mai puțină distorsiune a fișierului în timpul compresiei) și cu atât dimensiunea acestuia este mai mare 75
„Modul de scriere” Una dintre următoarele valori: „overwrite”, „append” "sobrescrie"
Opțiuni pentru fișierele JPEG
"Calitate" Un număr între 0 și 100; cu cât numărul este mai mare, cu atât este mai mare calitatea fișierului (mai puțină distorsiune la comprimarea fișierului) și cu atât dimensiunea fișierului este mai mare. 75
Opțiuni pentru fișierele TIFF
"Comprimare" Una dintre următoarele valori: „none”, „packbits”, „ccitt”; valoarea „ccitt” este valabilă numai pentru imagini binare (cu două culori). „ccitt” pentru imagini binare; „packbits” pentru toți ceilalți
"Descriere" Orice șir; valoarea câmpului ImageDescription este returnată de comanda imfinfo Linie goală
"Rezoluţie" Valoare scalară pentru rezoluție în direcțiile x și y
72

Ce nou am învățat?

În acest tutorial, am învățat:

    Deschideți și închideți fișierele.

    Efectuați operațiuni pe fișiere binare și formatate.

    Poziționați fișierul.

    Aplica fisiere specializate.

Cel mai frecvent motiv pentru probleme cu deschiderea fișierului MATLAB este pur și simplu lipsa aplicațiilor adecvate instalate pe computer. În acest caz, este suficient să găsiți, descărcați și instalați o aplicație care servește fișiere în format MATLAB - astfel de programe sunt disponibile mai jos.

Sistem de căutare

Introduceți extensia fișierului

Ajutor

cheie

Trebuie remarcat faptul că unele date codificate din fișiere pe care computerul nostru nu le citește pot fi uneori vizualizate în Notepad. În acest fel citim bucăți de text sau numere - Merită să verificați dacă această metodă funcționează și pentru fișierele MATLAB.

Ce se întâmplă dacă o aplicație din listă a fost deja instalată?

Adesea, o aplicație instalată ar trebui să se conecteze automat la un fișier MATLAB. Dacă nu s-a întâmplat acest lucru, atunci fișierul MATLAB poate fi legat cu succes manual de aplicația nou instalată. Este suficient să faceți clic dreapta pe fișierul MATLAB, apoi să selectați opțiunea „Selectare program implicit” dintre cele disponibile. Apoi trebuie să selectați opțiunea „Vizualizare” și să găsiți aplicația preferată. Modificările introduse trebuie confirmate cu opțiunea „OK”.

Programe care deschid fișierul MATLAB

Windows

De ce nu pot deschide fișierul meu MATLAB?

Problemele cu fișierele MATLAB pot avea, de asemenea, un fundal diferit. Uneori, chiar și instalarea software-ului care deservește fișierele MATLAB pe computer nu va rezolva problema. Motivul imposibilității deschiderii, precum și a lucrului cu fișierul MATLAB poate fi, de asemenea:

Legături inconsecvente de fișiere MATLAB în intrările de registru
- coruperea fișierului MATLAB pe care îl deschidem
- infecția fișierelor MATLAB (viruși)
- prea puține resurse informatice
- șoferi învechiți
- eliminarea extensiei MATLAB din registrul Windows
- instalarea incompletă a programului care servește extensia MATLAB

Eliminarea acestor probleme ar trebui să ducă la deschiderea și lucrul gratuit cu fișierele MATLAB. În cazul în care computerul mai are probleme cu fișierele, trebuie să apelați la ajutorul unui expert care va stabili cauza exactă.

Computerul meu nu afișează extensii de fișiere, ce ar trebui să fac?

În instalările standard de Windows, un utilizator de computer nu vede extensia de fișier MATLAB. Acest lucru poate fi schimbat cu succes în setări. Este suficient să intri în „Panou de control” și să selectezi „Aspect și personalizare”. Apoi trebuie să introduceți „Opțiuni folder” și să deschideți „Vizualizare”. În fila „Vizualizare” există o opțiune „Ascunde extensiile tipurilor de fișiere cunoscute” – trebuie să selectați această opțiune și să confirmați operația apăsând butonul „OK”. În acest moment, extensiile tuturor fișierelor, inclusiv MATLAB, ar trebui să apară sortate după numele fișierului.

Top articole similare