Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • Otvorite matlab fajl. Razmjena podataka između MatLaba i Excela

Otvorite matlab fajl. Razmjena podataka između MatLaba i Excela

). Među alatima opšte namene koji se koriste u hemometriji, MatLab paket zauzima posebno mesto. Njegova popularnost je neobično visoka. To je zato što je MatLab moćan i svestran za obradu višedimenzionalnih podataka. Sama struktura paketa čini ga pogodnim alatom za izvođenje matričnih proračuna. Raspon problema koji se mogu proučavati pomoću MatLab-a uključuje: matričnu analizu, obradu signala i slike, neuronske mreže i mnogi drugi. MatLab je jezik visokog nivoa koji ima open source, što omogućava iskusnim korisnicima da razumiju programirane algoritme. Jednostavan ugrađeni programski jezik olakšava kreiranje vlastitih algoritama. Tokom mnogo godina korištenja MatLaba, kreirali smo velika količina funkcije i ToolBox (paketi specijalizovanih alata). Najpopularniji je paket PLS ToolBox kompanije Eigenvector Research, Inc.

1. Osnovne informacije

1.1. MatLab radno okruženje

Da biste pokrenuli program, dvaput kliknite na ikonu. Pred vama će se otvoriti radno okruženje prikazano na slici.

Radno okruženje MatLab 6.x malo drugačiji od radnog prostora prethodnih verzija, ima praktičniji interfejs za pristup mnogim pratećim elementima

Radno okruženje MatLab 6.x sadrži sledeće elemente:

    traka sa alatkama sa dugmadima i padajućom listom;

    prozor sa karticama Launch Pad i Radni prostor, sa kojeg možete pristupiti razni moduli ToolBox i sadržajima radnog okruženja;

    prozor sa karticama Command History I Current Directory, namenjen za pregled i ponovno pozivanje prethodno unetih komandi, kao i za podešavanje trenutnog direktorijuma;

    komandni prozor koji sadrži prompt "unos" i trepćući vertikalni kursor;

    status bar.

Ako je u radnom okruženju MatLab 6.x Ako nedostaju neki prozori prikazani na slici, trebate odabrati odgovarajuće stavke u izborniku Pogled: Komandni prozor, Historija naredbi, Trenutni direktorij, Radni prostor, Launch Pad.

Komande treba ukucati u komandni prozor. Simbol » , koji označava prompt komandne linije, nije potrebno kucati. Za pregled radni prostor Pogodno je koristiti trake za pomeranje ili tastere Home, End, za pomeranje levo ili desno i PageUp, PageDown za kretanje gore ili dole. Ako iznenada, nakon pomicanja po radnom području komandnog prozora, komandna linija sa trepćućim kursorom nestane, samo pritisnite Enter.

Važno je zapamtiti da se kucanje bilo koje naredbe ili izraza mora završiti pritiskom na Enter kako bi MatLab izvršio tu naredbu ili procijenio izraz.

1.2. Jednostavne kalkulacije

Upišite 1+2 u komandnu liniju i pritisnite Enter. Kao rezultat, MatLab komandni prozor prikazuje sljedeće:

Rice. 2 Grafički prikaz analize glavnih komponenti

Šta je radio MatLab program? Prvo je izračunala zbir 1+2, zatim je rezultat zapisala u posebnu varijablu ans i prikazala njegovu vrijednost jednaku 3 u komandnom prozoru. Ispod odgovora je komandna linija sa trepćućim kursorom, što ukazuje da je MatLab spreman za dalje proračune. Možete upisati nove izraze u komandnu liniju i pronaći njihova značenja. Ako treba da nastavite da radite sa prethodnim izrazom, na primer, izračunajte (1+2)/4,5, onda je najlakši način da koristite postojeći rezultat koji je pohranjen u varijablu ans. Ukucajte ans/4.5 (tačka se koristi prilikom unosa decimala) i pritisnite Enter, ispostavilo se

Rice. 3 Grafički prikaz analize glavnih komponenti

1.3. Echo komande

Izvršenje svake naredbe u MatLabu je praćeno ehoom. U gornjem primjeru, odgovor je ans = 0,6667. Često eho otežava percepciju rada programa i tada se može isključiti. Da biste to učinili, naredba mora završiti tačkom i zarezom. Na primjer

Rice. 4 Primjer unosa funkcije ScoresPCA

1.4. Očuvanje radnog okruženja. MAT fajlovi

Najlakši način da sačuvate sve vrednosti varijabli je da koristite opciju Sačuvaj radni prostor kao u meniju Datoteka. Ovo će otvoriti okvir za dijalog Save Workspace Variables, u kojem morate navesti ime direktorija i datoteke. Podrazumevano se predlaže da se datoteka pohrani u radni poddirektorij glavnog MatLab direktorija. Program će rezultate svog rada sačuvati u datoteci sa ekstenzijom mat. Sada možete zatvoriti MatLab. U sljedećoj radnoj sesiji, da biste vratili vrijednosti varijabli, trebali biste otvoriti ovu sačuvanu datoteku koristeći podstavku Otvori menija Datoteka. Sada su sve varijable definirane u posljednjoj sesiji ponovo dostupne. Mogu se koristiti u novounesenim naredbama.

1.5. Časopis

MatLab ima sposobnost pisanja izvršne komande a rezultati u tekstualnu datoteku (čuvajte dnevnik rada), koji se zatim može pročitati ili odštampati iz uređivača teksta. Za početak evidentiranja koristite naredbu dnevnik. Kao komandni argument dnevnik trebali biste navesti ime datoteke u kojoj će se pohraniti dnevnik rada. Naredbe koje se dalje upisuju i rezultati njihovog izvršavanja biće upisani u ovu datoteku, na primjer niz naredbi

obavlja sljedeće radnje:

    otvara dnevnik u datoteci exampl-1.txt;

    vrši proračune;

    sprema sve varijable u MAT fajl work-1.mat ;

    čuva dnevnik u datoteci exampl-1.txt u radni poddirektorijum MatLab root direktorijuma i zatvara MatLab;

Pogledajte sadržaj datoteke exampl-1.txt u nekim uređivač teksta. Datoteka će sadržavati sljedeći tekst:

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

Sačuvaj rad-1
quit

1.6. Sistem pomoći

MatLab prozor pomoći se pojavljuje nakon odabira opcije Help Window iz menija Help ili klikom na dugme za pitanje na traci sa alatkama. Ista operacija se može izvesti upisivanjem naredbe helpwin. Da biste prikazali prozore pomoći za pojedinačne teme, otkucajte helpwin tema. Prozor pomoći vam pruža iste informacije kao i naredba za pomoć, ali sučelje prozora pruža više zgodna komunikacija sa drugim temama pomoći. Koristeći adresu web stranice Math Works, možete pristupiti serveru kompanije i dobiti najnovije informacije o pitanjima koja vas zanimaju. Možete provjeriti nove softverske proizvode ili pronaći odgovore na svoje probleme na stranici tehničke podrške.

2. Matrice

2.1. Skalari, vektori i matrice

U MatLabu možete koristiti skalare, vektore i matrice. Da biste unijeli skalar, dovoljno je dodijeliti njegovu vrijednost nekoj varijabli, na primjer

Imajte na umu da MatLab razlikuje kapital i velika slova, pa su p i P različite varijable. Za unos nizova (vektora ili matrica), njihovi elementi se stavljaju u uglaste zagrade. Dakle, da biste unijeli vektor reda 1x3, koristite sljedeću naredbu u kojoj su elementi reda odvojeni razmacima ili zarezima.

Prilikom unosa vektora stupca, elementi se odvajaju tačkom i zarezom. Na primjer,

Pogodno je unositi male matrice direktno iz komandne linije. U ulazu, matrica se može smatrati vektorom kolone, čiji je svaki element vektor reda.

ili matrica se može tretirati kao vektor reda, čiji je svaki element vektor kolone.

2.2. Pristup elementima

Pristup elementima matrice se vrši pomoću dva indeksa - priloženih brojeva redova i stupaca okrugle zagrade, na primjer, naredba B(2,3) će proizvesti element drugog reda i treće kolone matrice B. Da biste odabrali kolonu ili red iz matrice, koristite broj stupca ili reda matrice kao jedan od indeksa, a drugi indeks zamijenite dvotočkom. Na primjer, upišimo drugi red matrice A u vektor z

Također možete odabrati matrične blokove koristeći dvotočku. Na primjer, izaberimo iz matrice P blok označen bojom

Ako trebate vidjeti varijable radnog okruženja, trebate ukucati naredbu u komandnoj liniji whos .

Vidi se da radno okruženje sadrži jedan skalar (p), četiri matrice (A, B, P, P1) i vektor reda (z).

2.3. Osnovne matrične operacije

Kada koristite matrične operacije, zapamtite da za sabiranje ili oduzimanje matrice moraju biti iste veličine, a kada se množe, broj stupaca prve matrice mora biti jednak broju redova druge matrice. Sabiranje i oduzimanje matrica, kao i brojeva i vektora, vrši se pomoću znakova plus i minus

a množenje je označeno zvjezdicom *. Hajde da uvedemo matricu veličine 3×2

Množenje matrice brojem se također vrši pomoću zvjezdice, a možete množiti brojem i desno i lijevo. Izgradnja kvadratna matrica na cjelobrojni stepen se proizvodi pomoću ^ operatora

Provjerite svoj rezultat množenjem matrice P sama po sebi.

2.4. Kreiranje matrica posebnog tipa

Popunjavanje pravokutne matrice nulama vrši se ugrađenom funkcijom nule

Matrica identiteta se kreira pomoću funkcije oko

Matrica koja se sastoji od jedinica formira se kao rezultat pozivanja funkcije one

MatLab pruža mogućnost popunjavanja matrica slučajnim brojevima. Rezultat funkcije rand je matrica brojeva ravnomjerno raspoređenih između nule i jedan, i funkcija randn- matrica brojeva raspoređenih prema normalnom zakonu sa nultom srednjom i jediničnom varijansom.

Funkcija dijag formira dijagonalnu matricu od vektora, raspoređujući elemente duž dijagonale.

2.5. Matrični proračuni

MatLab sadrži mnogo različitih funkcija za rad sa matricama. Tako se, na primjer, transponiranje matrice vrši pomoću apostrofa "

Pronalaženje inverzna matrica izvršeno pomoću funkcije inv za kvadratne matrice

3. Integracija MatLab-a i Excel-a

Integracija MatLab-a i Excel-a omogućava korisniku Excel-a pristup brojnim MatLab funkcijama za obradu podataka, različite proračune i vizualizaciju rezultata. Dodatak excllink.xla implementira ovu ekstenziju programa Excel. Za komunikaciju između MatLaba i Excela definirane su posebne funkcije.

3.1. Excel konfiguracija

Prije nego što postavite Excel na raditi zajedno sa MatLab-om, trebali biste biti sigurni da je Excel Link uključen u instaliranu verziju MatLab-a. U poddirektorijumu exclink glavnog MatLab direktorijuma ili poddirektoriju kutije sa alatkama trebalo bi da postoji datoteka sa dodatkom excllink.xla. Pokrenite Excel i odaberite Dodaci iz izbornika Alati. Otvoriće se dijaloški okvir koji sadrži informacije o dostupnim ovog trenutka nadgradnje. Koristeći dugme Pregledaj, navedite putanju do datoteke excllink.xla. Na listi dodataka dijaloški okvir linija će se pojaviti Excel Link 2.0 za upotrebu sa MatLabom sa postavljenom zastavom. Kliknite na OK, potrebni dodatak je dodan u Excel.

Imajte na umu da Excel sada ima panel Excel alati Link koji sadrži tri dugmeta: putmatrix, getmatrix, evalstring. Ovi gumbi implementiraju osnovne radnje potrebne za implementaciju odnosa između Excel-a i MatLab-a - razmjena matričnih podataka i izvršavanje MatLab komandi iz Excel okruženja. Kod ponovljenih lansiranja Excel dodatak excllink.xla se automatski povezuje.

Koordinirani rad Excel-a i MatLab-a zahtijeva još nekoliko postavki, koje su standardno prihvaćene u Excel-u (ali se mogu promijeniti). U meniju Alati idite na Opcije, otvara se okvir za dijalog Opcije. Odaberite karticu Općenito i uvjerite se da je zastavica referentnog stila R1C1 isključena, tj. ćelije su označene brojevima A1, A2 itd. Na kartici Uređivanje mora biti postavljena zastavica Premjesti odabir nakon Enter.

3.2. Razmjena podataka između MatLaba i Excela

Pokrenite Excel, provjerite da li je sve urađeno neophodna podešavanja kao što je opisano u prethodnom odeljku (MatLab mora biti zatvoren). Unesite matricu u ćelije A1 do C3, koristeći tačku za odvajanje decimalnih mjesta kako to zahtijeva Excel.

Odaberite podatke ćelije na listu i kliknite na dugme putmatrix, pojavljuje se Excel prozor sa upozorenjem da MatLab nije pokrenut. Kliknite OK, pričekajte da se MatLab otvori.

Pojavljuje se Excel dijaloški okvir sa linijom za unos za specificiranje naziva operativne varijable MatLab okruženje, u koji biste trebali izvesti podatke iz odabranih Excel ćelija. Na primjer, unesite M i zatvorite prozor pomoću dugmeta OK. Idite na MatLab komandni prozor i uvjerite se da je varijabla M kreirana u radnoj površini, koja sadrži niz tri po tri:

Uradite neke operacije u MatLabu sa matricom M, na primjer, invertirajte je.

Zovi inv Da biste invertirali matricu, kao i bilo koju drugu MatLab naredbu, možete to učiniti direktno iz Excela. Klikom na dugme evalstring koje se nalazi na panelu Excel Link dovodi do pojave dijaloškog okvira u čiju liniju za unos treba da upišete naredbu MatLab

IM=inv(M) .

Rezultat je sličan onome koji se dobija prilikom izvršavanja naredbe u MatLab okruženju.

Vratite se u Excel, učinite ćeliju A5 trenutnom ćelijom i kliknite na dugme getmatrix. Pojavljuje se dijaloški okvir sa linijom za unos u kojoj se od vas traži da unesete ime varijable koju želite uvesti u Excel. IN u ovom slučaju takva varijabla je IM. Kliknite OK, ćelije A5 do A7 imaju unesene elemente inverzne matrice.

Dakle, da biste izvezli matricu u MatLab, trebate odabrati odgovarajuće ćelije Excel list, a za uvoz dovoljno je navesti jednu ćeliju, koja će biti gornji lijevi element uvezenog niza. Preostali elementi će biti upisani u ćelije radnog lista u skladu sa dimenzijama niza, zamenjujući podatke sadržane u njima, tako da treba da budete oprezni kada uvozite nizove.

Gore navedeni pristup je najviše na jednostavan način razmjena informacija između aplikacija – izvorni podaci se nalaze u Excelu, zatim se izvoze u MatLab, tamo se na neki način obrađuju i rezultat se uvozi u Excel. Korisnik prenosi podatke koristeći dugmad na traci sa alatkama Excel Link. Informacije se mogu predstaviti u obliku matrice, tj. pravougaona površina radnog lista. Ćelije raspoređene u red ili kolonu izvoze se u MatLab vektore reda i kolone. Uvoz vektora redova i vektora stupaca u Excel se odvija na sličan način.

4. Programiranje

4.1. M-fajlovi

Rad iz MatLab komandne linije postaje težak ako trebate unijeti mnogo naredbi i često ih mijenjati. Vođenje dnevnika pomoću komande dnevnik i održavanje radnog okruženja malo olakšavaju rad. Najprikladniji način za izvršavanje grupa MatLab komandi je korištenje M-fajlova, u koje možete upisivati ​​komande, izvršavati ih sve odjednom ili u dijelovima, pohraniti ih u datoteku i koristiti ih kasnije. M-file editor je dizajniran za rad sa M-fajlovima. Uz njegovu pomoć, možete kreirati vlastite funkcije i pozvati ih, uključujući i iz komandnog prozora.

Proširite meni Datoteka glavnog MatLab prozora i u Novoj stavci izaberite podstavku M-fajl. Nova datoteka se otvara u prozoru uređivača M-fajla, koji je prikazan na slici.

Postoje dvije vrste M-fajlova u MatLabu: programska datoteka ( Script M-Files), koji sadrži niz naredbi i funkcije datoteke, ( Funkcija M-Files), koji opisuju funkcije koje definira korisnik.

4.2. File program

Unesite komande u editoru koje dovode do izgradnje dva grafikona na jednom grafičkom prozoru

Sada sačuvajte datoteku pod nazivom mydemo.m u radni poddirektorijum glavnog MatLab direktorijuma tako što ćete izabrati Sačuvaj kao iz menija File uređivača. Da biste pokrenuli sve komande sadržane u datoteci, izaberite Pokreni iz menija Debug. Na ekranu će se pojaviti grafički prozor Slika 1, koji sadrži grafove funkcija.

Komande programa datoteke izlaze u komandni prozor. Da biste potisnuli izlaz, morate završiti naredbe tačkom i zarezom. Ako se napravi greška pri kucanju i MatLab ne može prepoznati komandu, tada se izvršavaju naredbe do one pogrešno unesene, nakon čega se u komandnom prozoru prikazuje poruka o grešci.

Veoma zgodna prilika obezbeđeno M-file editor, je izvršenje dijela naredbi. Zatvorite grafički prozor Slika 1. Odaberite pomoću miša dok držite lijevo dugme ili pomoću tastera sa strelicama dok držite pritisnut taster Shift, prve četiri komande i izvršite ih iz stavke Tekst. Imajte na umu da je u grafičkom prozoru prikazan samo jedan grafikon, koji odgovara izvršenim komandama. Zapamtite da za izvršavanje nekih naredbi, odaberite ih i pritisnite tipku F9.

Pojedinačni blokovi M-datoteke mogu biti opremljeni komentarima, koji se preskaču tokom izvršavanja, ali su zgodni za rad sa M-datotekom. Komentari počinju sa znakom procenta i automatski su označeni zelenom bojom, na primjer:

Otvaranje postojećeg M-fajla vrši se pomoću stavke Otvori u meniju Datoteka radnog okruženja ili uređivača M-fajla.

4.3. Funkcija datoteke

Datotečni program o kojem smo gore govorili samo je niz MatLab naredbi; on nema ulazne ili izlazne argumente. Da biste koristili numeričke metode i prilikom programiranja vlastitih aplikacija u MatLabu, morate biti u mogućnosti kreirati funkcije datoteka koje proizvode neophodne radnje sa ulaznim argumentima i vrati rezultat akcije u izlaznim argumentima. Pogledajmo nekoliko jednostavnih primjera koji će vam pomoći da shvatite kako raditi s funkcijama datoteka.

Kada se predobrade podaci iz multivarijantne kemometrijske analize, često se koristi centriranje. Ima smisla jednom napisati funkciju datoteke, a zatim je pozvati gdje god je potrebno centriranje. Otvorite novu datoteku u uređivaču M-datoteka i otkucajte

Riječ funkcija u prvom redu navodi da ova datoteka sadrži funkcijsku datoteku. Prvi red je zaglavlje funkcije, koje sadrži ime funkcije i listu ulaznih i izlaznih argumenata. U primjeru, ime funkcije je centriranje, jedan ulazni argument je X, a jedan izlazni argument je Xc. Nakon zaglavlja slijede komentari, a zatim tijelo funkcije (u ovom primjeru sastoji se od dva reda), gdje se izračunava njena vrijednost. Važno je da se izračunata vrijednost upiše u Xc. Ne zaboravite staviti tačku i zarez kako biste spriječili prikazivanje nepotrebnih informacija na ekranu. Sada spremite datoteku u svoj radni direktorij. Imajte na umu da odabir Sačuvaj ili Sačuvaj kao iz menija Datoteka rezultira pojavljivanjem dijaloškog okvira Sačuvaj datoteku, u kojem polje Ime datoteke već sadrži centrirano ime. Nemojte ga mijenjati, sačuvajte funkcijsku datoteku u datoteku s predloženim imenom!

Sada se kreirana funkcija može koristiti na isti način kao i ugrađene sin, cos i druge. Vlastite funkcije mogu se pozvati iz programa datoteka i iz druge funkcije datoteke. Pokušajte sami napisati funkciju datoteke koja će skalirati matrice, tj. podijelite svaki stupac sa standardnom devijacijom za tu kolonu.

Možete napisati funkcijsku datoteku s nekoliko ulaznih argumenata, koji se nalaze u listi razdvojenoj zarezima. Također možete kreirati funkcije koje vraćaju više vrijednosti. Da biste to učinili, izlazni argumenti se dodaju, odvojeni zarezima, na listu izlaznih argumenata, a sama lista je zatvorena u uglastim zagradama. Dobar primjer je funkcija koja pretvara vrijeme navedeno u sekundama u sate, minute i sekunde.

Prilikom pozivanja funkcija datoteke s više izlaznih argumenata, rezultat bi trebao biti zapisan u vektor odgovarajuće dužine.

4.4 Kreiranje grafikona

MatLab ima široke mogućnosti za grafička slika vektore i matrice, kao i za kreiranje komentara i štampanje grafova. Hajde da opišemo nekoliko važnih grafičkih funkcija.

Funkcija plot ima različite oblike pridružene ulaznim parametrima, na primjer plot(y) stvara linearni graf elemenata y u odnosu na njihove indekse. Ako su dva vektora data kao argumenti, plot(x,y) će kreirati graf y naspram x. Na primjer, za iscrtavanje funkcije sin u rasponu od 0 do 2π, učinite sljedeće

Program je napravio graf zavisnosti koji se prikazuje u prozoru Slika 1

MatLab automatski dodjeljuje različitu boju svakom dijagramu (osim ako to korisnik ne učini), omogućavajući vam da razlikujete skupove podataka.

Tim Čekaj omogućava vam da dodate krive postojećem grafikonu. Funkcija podzaplet omogućava vam da prikažete više grafikona u jednom prozoru

4.5 Štampanje grafikona

Stavka Štampanje u meniju Datoteka i naredba print print MatLab grafike. Meni Štampanje otvara dijaloški okvir koji vam omogućava da izaberete uobičajene standardne opcije štampanja. Tim print pruža veću fleksibilnost u izlazu i omogućava kontrolu nad ispisom iz M-fajlova. Rezultat se može poslati direktno na podrazumevani štampač ili sačuvati u određenoj datoteci.

5. Primjeri programa

Ovaj odjeljak opisuje najčešće korištene algoritme koji se koriste u analizi višedimenzionalnih podataka. Razmatraju se i najjednostavnije metode transformacije podataka - centriranje i skaliranje - i algoritmi za analizu podataka - PCA, PLS.

5.1. Centriranje i skaliranje

Često je tokom analize potrebno transformisati originalne podatke. Najčešće korištene metode za transformaciju podataka su centriranje i skaliranje svake varijable prema njenoj standardnoj devijaciji. Dat je kod funkcije za centriranje matrice. Stoga je ispod prikazan samo kod funkcije koja vage podaci. Imajte na umu da originalna matrica mora biti centrirana

funkcija Xs = skaliranje(X)
% skaliranja: izlazna matrica je Xs
% matrica X mora biti centrirana

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

%kraj skaliranja

5.2. SVD/PCA

Većina popularan način Kompresija podataka u multivarijantnoj analizi je analiza glavnih komponenti (PCA). Sa matematičke tačke gledišta, PCA je dekompozicija originalne matrice X, tj. njegovu reprezentaciju kao proizvod dvije matrice T I P

X = TP t+ E

Matrix T se naziva matrica rezultata, matrica se naziva matrica reziduala.

Najjednostavniji način za pronalaženje matrica T I P- koristiti SVD dekompoziciju kroz standardnu ​​MatLab funkciju koja se zove svd .

funkcija = pcasvd(X)

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

%kraj pcasvd

5.3 PCA/NIPALS

Za izgradnju PCA naloga i opterećenja koristi se rekurentni algoritam NIPALS, koji izračunava jednu komponentu u svakom koraku. Prvo originalna matrica X transformira se (minimalno - centriran; vidi) i pretvara se u matricu E 0 , a=0. Zatim se primjenjuje sljedeći algoritam.

t 2. str t = t t Ea / t t t 3. str = str / (str t str) ½ 4. t = Ea str / str t str 5. Provjerite konvergenciju, ako ne, idite na 2

Nakon izračunavanja sljedećeg ( a-th) komponente, pretpostavljamo ta=t I stra=str E a+1 = Eat str a on a+1.

Kod za NIPALS algoritam mogu napisati sami čitaoci, au ovom priručniku autori predstavljaju svoju verziju. Prilikom izračunavanja PCA, možete unijeti broj glavnih komponenti (broj varijablePC). Ako ne znate koliko komponenti je potrebno, trebali biste napisati = pcanipals (X) na komandnoj liniji i tada će program postaviti broj komponenti jednak najmanjoj od dimenzija originalne matrice X.

funkcija = pcanipals(X, brojPC)

% obračun broja komponenti
= veličina(X); P=; T=;

Ako je lenfth(brojPC) > 0
pc = brojPC(1);
elseif (dužina(brojPC) == 0) & X_r< X_c
pc = X_r;
ostalo
pc = X_c;
kraj;

za k = 1:kom
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;

Dok je 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;
kraj

X = X - T1 * P1; P = kat(1, P, P1"); T = ;
kraj

Kako izračunati PCA pomoću dodatka Chemometrics opisano je u vodiču

5.4PLS1

Najpopularnija metoda za multivarijantnu kalibraciju je metoda projekcije na latentne strukture (PLS). Ova metoda uključuje istovremenu dekompoziciju prediktorske matrice X i matrice odgovora Y:

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

Projekcija je konstruisana konzistentno - tako da se maksimizira korelacija između odgovarajućih vektora X-računi ta I Y-računi ua. Ako je blok podataka Y uključuje više odgovora (tj. K>1), mogu se konstruisati dvije projekcije početnih podataka – PLS1 i PLS2. U prvom slučaju, za svaki od odgovora y k konstruiše se sopstveni projekcijski podprostor. Istovremeno, računi T (U) i opterećenja P (W, Q) zavisi od toga koji se odgovor koristi. Ovaj pristup se naziva PLS1. Za metodu PLS2 konstruiše se samo jedan prostor za projekciju, koji je zajednički za sve odgovore.

Detaljan opis PLS metode je dat u ovoj knjizi. Za pravljenje PLS1 naloga i učitavanja koristi se rekurentni algoritam. Prvo originalne matrice X I Y centar

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

i pretvaraju se u matricu E 0 i vektor f 0 , a=0. Zatim se na njih primjenjuje sljedeći algoritam

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. str t = t t Ea / t t t

Nakon izračunavanja sljedećeg ( a-th) komponente, pretpostavljamo ta=t I stra=str. Da biste dobili sljedeću komponentu, morate izračunati ostatke E a+1 = Eat str t i primijeniti isti algoritam na njih, zamjenjujući indeks a on a+1.

Evo koda za ovaj algoritam preuzet iz knjige

funkcija = pls(x, y)
%PLS: izračunava PLS komponentu.
%Izlazni vektori su w, t, u, q i p.
%
% Odaberite vektor iz y kao početni vektor u.

u = y(:, 1);

% Kriterijum konvergencije je postavljen veoma visoko.
kri = 100;

% Naredbe odavde do kraja se ponavljaju do konvergencije.
dok (kri > 1e - 10)

% Svaki početni vektor u se čuva kao ustar.
uold = u; w = (u" * x)"; w = w/norm(w);
t = x * w; q = (t" * y)"/(t" * t);
u = y * q/(q" * q);

% Kriterij konvergencije je norma u-uold podijeljena sa normom u.
kri = norma(uold - u)/norma(u);
kraj;

% Nakon konvergencije, izračunajte p.
p = (t" * x)"/(t" * t);

%Kraj pls

O izračunavanju PLS1 pomoću dodatka HemometrijaDodati opisano u priručniku Metode projekcije u Excelu.

5.5PLS2

Za PLS2 algoritam je sljedeći. Prvo originalne matrice X I Y transformiraju (barem - centar; vidi), i pretvaraju se u matrice E 0 i F 0 , a=0. Zatim se na njih primjenjuje sljedeći algoritam.

1. Odaberite početni vektor 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. Provjerite konvergenciju, ako ne, idite na 2 8. str t = t t Ea / t t t

Nakon izračunavanja sljedećeg ( a oh) PLS2 komponente treba staviti: ta=t, stra=p,wa=w, ua=u I q a = q. Da biste dobili sljedeću komponentu, morate izračunati ostatke E a+1 = Eatp t and Fa +1 = F atq t i primijeniti isti algoritam na njih, zamjenjujući indeks a on a+1.

Evo koda, koji je također pozajmljen iz knjige.

funkcija = plsr(x, y, a)
% PLS: izračunava PLS komponentu.
% Izlazne matrice su W, T, U, Q i P.
% B sadrži koeficijente regresije i SS sume
% kvadrata za ostatke.
% a je broj komponenti.
%
% Za komponente: koristite sve naredbe za kraj.

Za i=1:a
% Izračunajte zbir kvadrata. Koristite funkciju ss.
sx = ;
sy = ;

% Koristite funkciju pls za izračunavanje jedne komponente.
= pls(x, y);

% Izračunajte ostatke.
x = x - t * p";
y = y - t * q";

% Sačuvajte vektore u matricama.
W = ;
T = ;
U = ;
Q = ;
P = ;
kraj;

% Izračunajte koeficijente regresije nakon petlje.
B=W*inv(P"*W)*Q";

% Dodajte konačni preostali SS zbroju vektora kvadrata.
sx=;
sy=;

% Napravite matricu ss vektora za X i Y.
SS = ;

% Izračunajte udio korištenog SS.
= veličina (SS);
tt = (SS * dijag(SS(1,:).^(-1)) - one(a, b)) * (-1)

%Kraj plsr

funkcija = ss(x)
%SS: izračunava zbir kvadrata matrice X.
%

ss=suma(suma(x. * x));
%Kraj ss

O izračunavanju PLS2 pomoću dodatka HemometrijaDodati opisano u priručniku Metode projekcije u Excelu.

Zaključak

MatLab je veoma popularan alat za analizu podataka. Prema istraživanju, koristi ga do trećina svih istraživača, dok program Unsrambler koristi samo 16% naučnika. Glavni nedostatak MatLaba je njegova visoka cijena. Osim toga, MatLab je dobar za rutinske proračune. Nedostatak interaktivnosti čini ga nezgodnim pri obavljanju pretraživanja, istraživačkih proračuna za nove, neistražene skupove podataka.

Nadamo se da smo vam pomogli da rešite problem sa MATLAB fajlom. Ako ne znate gdje možete preuzeti aplikaciju sa naše liste, kliknite na link (ovo je naziv programa) - Naći ćete detaljnije informacije o tome gdje možete preuzeti bezbednu instalacionu verziju potrebne aplikacije.

Posjet ovoj stranici trebao bi vam pomoći da konkretno odgovorite na ova ili slična pitanja:

  • Kako otvoriti fajl sa MATLAB ekstenzijom?
  • Kako pretvoriti MATLAB fajl u drugi format?
  • Šta je MATLAB File Format Extension?
  • Koji programi služe MATLAB fajlu?

Ako nakon pregleda materijala na ovoj stranici i dalje ne dobijete zadovoljavajući odgovor ni na jedno od gore navedenih pitanja, to znači da su ovdje predstavljene informacije o MATLAB datoteci nepotpune. Kontaktirajte nas putem kontakt forme i napišite koje informacije niste pronašli.

Šta bi još moglo uzrokovati probleme?

Možda postoji više razloga zašto ne možete otvoriti MATLAB datoteku (ne samo nedostatak odgovarajuće aplikacije).
Prvo- MATLAB datoteka može biti pogrešno povezana (nekompatibilna) sa instaliranom aplikacijom da bi je poslužila. U tom slučaju morate sami promijeniti ovu vezu. Da biste to uradili, kliknite desnim tasterom miša na MATLAB fajl koji želite da uredite, kliknite na opciju "Za otvaranje sa" a zatim sa liste izaberite program koji ste instalirali. Nakon ove akcije, problemi s otvaranjem MATLAB datoteke trebali bi potpuno nestati.
Drugo- datoteka koju želite da otvorite može jednostavno biti oštećena. U ovom slučaju, najbolje bi bilo pronaći njegovu novu verziju, ili je ponovo preuzeti sa istog izvora (možda iz nekog razloga u prethodnoj sesiji preuzimanje MATLAB datoteke nije završeno i nije se moglo ispravno otvoriti) .

Želite li pomoći?

Ako imate dodatne informacije o ekstenziji datoteke MATLAB, bili bismo vam zahvalni ako ih podijelite s korisnicima naše stranice. Koristite dostavljeni obrazac i pošaljite nam svoje podatke o MATLAB datoteci.

Lekcija #19.

Rad sa fajlovima

    Otvaranje i zatvaranje fajlova

    Operacije binarnih datoteka

    Operacije na formatiranim datotekama

    Pozicioniranje fajla

    Specijalizovani fajlovi

Fajlovi su prilično uobičajeni MATLAB objekti. Neki tipovi datoteka su već razmatrani u prethodnim poglavljima. Ova lekcija govori o svojstvima datoteke koja ne ovise o njihovom tipu i primjenjuju se na bilo koju datoteku.

Otvaranje i zatvaranje fajlova

File obično je zbirka podataka ujedinjenih jednim imenom. Tip datoteke se obično određuje njegovom ekstenzijom. Datoteku smatramo kao cjelinu, iako fizički na disku može biti predstavljena s nekoliko područja - kažu da je u ovom slučaju datoteka fragmentirana.

Prije korištenja bilo koje datoteke, ona mora biti otvoren, a po završetku upotrebe - zatvoreno. Mnoge datoteke mogu biti otvorene i čitljive u isto vrijeme. Pogledajmo komande za otvaranje i zatvaranje datoteka.

    Naredba open name, gdje ime mora sadržavati niz znakova ili varijablu znakova, otvara datoteke ovisno o analizi parametra imena i ekstenzije u nazivu imena:

    • varijabla - otvara niz nazvan po imenu u uređivaču niza;

      Mat - otvara fajl, sprema varijable u strukturu u radnom prostoru;

      Fig - otvara ga u grafičkom uređivaču deskriptora Property Editor;

      M - otvara m-datoteku u editor-debuggeru;

      Mdl - otvara model u Simulink-u;

      P - otvara, ako postoji, m-datoteku sa istim imenom;

      Html - otvara HTML dokument u pretraživaču pomoći.

Ako fajlovi sa ekstenzijom postoje u MATLAB putanji, onda je datoteka koja se vraća naredbom čije ime se otvara, ako ne, onda datoteka iz sistema datoteka. Ako datoteka nema ekstenziju imena, onda je otvara program čiji format datoteke bi detektovala funkcija igpsIFileName") Prema zadanim postavkama, za sve datoteke sa završetcima koji nisu gore navedeni, poziva se openother. Open poziva funkcije orepxxx, gdje je xxx ekstenzija datoteke. Izuzetak su varijable radnog prostora za koje se poziva openvar i crteži za koje se poziva openim. Kreiranjem t-fajlova pod nazivom orepxxx, korisnici mogu promijeniti rukovanje datotekama i dodati nove ekstenzije na listi. Zatvori datoteke otvorene kada otvori pomoć, potrebno od urednika pod nazivom orenxxx.

    Uigetfile(FILTERSPEC. Naslov). Otvara dijalog s nazivom Naslov i filterom FILTERSPEC (na primjer, niz ćelija koji sadrži ekstenzije datoteke) i vraća datoteku koju je izabrao korisnik i njenu putanju. Vraća FILENAME=0 ako datoteka ne postoji ili ako je korisnik kliknuo na Otkaži. = uigetfile(FILTERSPEC, Naslov. X. Y) postavlja dijaloški okvir na X, Y (koordinate piksela).

primjer:

Uigetfile("*.m;*.fig;*.mat:*.mdl". "Sve MATLAB datoteke (*.m, *.fig, *.mat. *.mdl)": ...

    Uiputfile(FILTERSPEC. TITLE) sprema datoteku u dijalogu koji kontrolira korisnik. Parametri su slični onima u funkciji uigetfile.

    Ui open komanda otvara dijalog, a ako korisnik odabere datoteku sa poznato proširenje, poziva ga koristeći open, ili ako ima ime datoteke nepoznata ekstenzija, tada se poziva uigetfile. uiopen ulazni argumenti mogu biti mat lab, load, figure, simulink, editor. Bez ulaznih argumenata ili sa matlab ulaznim argumentom, dijaloški okvir od vas traži da odaberete *.m, *.fig, *.mat,*.mdl (ako je instaliran Simulink), *. cdr (ako je instaliran tok stanja), *.rtw, *.tmf, *.tlc, *.c, *.h, *.ads, *.adb (ako je instalirana Real-Time Workshop). Sa argumentom opterećenja - *.mat. Sa argumentom figure, *.fig; simul ink - *.mdl, editor - *.m, *.mdt *.cdr, *.rtw, *.tmf, *.tlc, *.c, *.h, *.ads, *.adb.

primjer:

uiopen figure.

    Naredba uiload otvara datoteku u dijalogu koji kontrolira korisnik koristeći naredbu load.

Funkcija uvoza korisničkog interfejsa pokreće čarobnjak za uvoz, uvoz iz datoteke u trenutnoj fascikli ili Windows međuspremnika. Ovo odgovara odabiru Import Data iz menija File ili odabiru Paste Special iz MATLAB Edit menija.

    Ui import (FILENAME) - pokreće čarobnjak za uvoz, otvarajući datoteku FILENAME. Čarobnjak za uvoz prikazuje pregled podataka. Podaci i njihova reprezentacija kao MATLAB varijable pojavljuju se u prozoru za pregled. Stvarni podaci, tekst i zaglavlja su predstavljeni različitim MATLAB varijablama. Za ASCII podatke, morate osigurati da čarobnjak za uvoz prepoznaje graničnike stupaca. Sam po sebi, može prepoznati samo tabulator, razmak, zarez ili tačku-zarez. Potrebno je da kliknete na dugme Dalje iu sledećem prozoru ili potvrdite izbor separatora koji je napravio čarobnjak, ili izaberite Ostalo i unesite bilo koji separator.

    ui import (" -f i le") - prvo prikazuje dijalog za odabir datoteke.

    ui import ("-pastespecial") - Prvo pregleda sadržaj Windows međuspremnika.

    S = ui import (...) pohranjuje rezultirajuće varijable kao polja S strukture.

    Naredba uisave je spremanje koje kontrolira korisnik (naredba spremanja je opisana u lekciji 2) sa Windows dijalogom.

    Funkcija saveas pohranjuje crtež ili Simulink model u željenom formatu na mediju za pohranu ili uređaju koji je omogućen ispisom.

    Funkcija saveas(H, "FILENAME") - sprema podatke prema grafičkoj komandi deskriptora H u datoteci FILENAME. Format datoteke je određen ekstenzijom naziva FILENAME.

    Funkcija saveas (H. "FILENAME" . "FORMAT") - radi istu stvar, ali sa parametrom FORMAT (format je specificiran na isti način kao ekstenzija naziva datoteke i može se razlikovati od njega). FORMAT ima prednost nad ekstenzijom naziva datoteke. Parametri funkcije:

primjeri:

saveas(gcf. "output", "fig") saveasCgcf, "output", "bmp")

Komanda ili funkcija delete briše datoteku ili grafički objekt.

    Delete filename briše datoteku u trenutnoj fascikli. Može biti korišteno *. Poželjno se koristi sa zapisom u funkcijskom obliku delete("mw file") kada je ime datoteke niz.

    delete(H) briše grafički objekat sa ručkom H. Ako je ovaj objekt prozor, onda se prvo zatvara.

    Close(H) funkcija zatvara samo grafičke prozore. Da biste zatvorili datoteke, morate koristiti naredbu f close.

Za pisanje datoteka na disk koristite naredbu save, koja se koristi u prilično očiglednim oblicima:

spasiti

sačuvaj ime datoteke sačuvaj ime datoteke varl var2 ... sačuvaj ... opcija save(" ime datoteke" , ...)

U skladu s tim, za čitanje datoteka s diska koristite naredbu load:

opterećenje

učitaj naziv datoteke učitaj ime datoteke X Y Z

učitavanje ime datoteke -ascii učitavanje ime datoteke -mat

U ovim naredbama ime datoteke je naznačeno prema pravilima usvojenim u operativni sistemi MS-DOS klasa. Ove komande se obično dupliraju pomoću dugmadi na traci sa alatkama i pretraživača datoteka.

Operacije binarnih datoteka

Binarno ili binarni, su datoteke čiji su podaci mašinski kod. Glavne operacije s takvim kodovima navedene su u nastavku.

    fopen(filename, permission) - otvara datoteku sa imenom filename i parametrom definisanim u dozvoli, i vraća identifikator fid sa vrednošću: 0 - čitanje tastature (dozvola je postavljena na "r"); 1 - prikaz izlaza (dozvoljenje je postavljeno na "a"); 2 - izlaz poruke o grešci (dozvoljenje je postavljeno na "a"); -1 - neuspjeh otvaranja datoteke sa izlazom poruka poruka o vrsti greške. Fid identifikator se često koristi kao argument od strane drugih funkcija i I/O programa. Ime datoteke ime datoteke može sadržavati putanju do datoteke.

Ako datoteka koja se otvara za čitanje nije pronađena u trenutnom direktoriju, fopen funkcija traži datoteku na stazi navedenoj u MATLAB-u.

Parametar dozvole može uzeti jednu od sljedećih osnovnih vrijednosti (za ostale, pogledajte sistem pomoći):

    "r" - otvaranje datoteke za čitanje (podrazumevano);

    "r+" - otvara fajl za čitanje i pisanje;

    "w" - brisanje sadržaja postojeće datoteke ili kreiranje novog i otvaranje za pisanje;

    "a" - kreiranje i otvaranje nove datoteke ili otvaranje postojeće zazapisi priloženi na kraj datoteke.

Dodavanje "b" ovoj liniji (podrazumevano podrazumevano) daje instrukcije sistemu da otvori datoteku u binarnom režimu.

Dodavanje "t" umjesto b ovom nizu, kao što je "rt", na operativnim sistemima koji razlikuju tekstualne i binarne datoteke, daje instrukcije sistemu da otvori datoteku u tekstualnom modu. Na primjer, u svim verzijama MATLAB-a za Windows/MS-DOS i VMS, ne možete otvoriti tekstualnu datoteku bez "rt" parametra. Prilikom unosa datoteka koristeći fopen u tekstualnom modu, svi znakovi "povratak konice" prije znaka se uklanjaju nova linija.

    Fopentfilename.permission,format) - Otvara datoteku kao što je gore opisano, vraćajući ID datoteke i poruku. Osim toga, vrijednost parametra formata vam omogućava da precizno odredite format broja. Postoji 8 mogućih formata, čiji se opisi mogu naći u sistemu pomoći. Konkretno, niz formata može imati vrijednosti "native" (format računara na kojem je sistem instaliran), "vax", "sgau" (VAX i Cray računari) itd.

Određeni pozivi fread ili fwrite mogu nadjačati format broja koji je naveden prilikom pozivanja fopen-a.

    fids = fopen C all") - vraća vektor reda koji sadrži identifikatore svih otvorenih datoteka, ne uključujući standardne tokove O, 1 i 2. Broj vektorskih elemenata jednak je broju datoteka koje je otvorio korisnik;

    Fopen(fid) - vraća puno ime datoteku, liniju .permission i liniju formata. Ako koristite nevažeće fid vrijednosti, vraćaju se prazni nizovi za sve izlazne argumente.

Naredba fclose zatvara datoteku. Ima sljedeće opcije.

    Status = fclose(fid) - zatvara datoteku ako je otvorena. Vraća status datoteke jednak 0 ako je zatvaranje bilo uspješno, -1 u suprotnom. Argument fid je identifikator povezan sa otvorenom datotekom (pogledajte funkciju fopen za detaljniji opis);

    status = fclose("all") zatvara sve otvorene datoteke. Vraća 0 ako je uspješan i -1 u suprotnom.

Primjer otvaranja i zatvaranja datoteke:

» fid=fopen("c:\ex"."a+") fid = 4

» fclose(4)

ans =

    Fread(fid,size,precision) - čita binarne podatke iz date datoteke i stavlja ih u matricu A. Broj izlaznih argumenata sadrži broj uspješno pročitanih elemenata. Vrijednost fid je cijeli broj koji vraća fopen; veličina je argument koji određuje količinu podataka za čitanje. Ako veličina nije navedena, f read čita do kraja datoteke.

Koriste se sljedeći parametri veličine:

    n - čitanje n elemenata u vektor kolone;

    Čita onoliko elemenata koliko je potrebno za popunjavanje matrice txp.

Popunjavanje se vrši u kolonama. Ako ima nekoliko elemenata u datoteci, tada je matrica napunjena nulama. Ako čitanje dođe do kraja datoteke bez popunjavanja matrice potrebne veličine, tada se matrica puni nulama. Ako dođe do greške, čitanje se zaustavlja na posljednjoj očitanoj vrijednosti. Parametar preciznosti je niz koji specificira numeričku preciznost pročitanih vrijednosti, kontrolira broj pročitanih bitova za svaku vrijednost i tumači te bitove kao cijeli broj, broj s pomičnim zarezom ili kao znak

    Fread(fid,size.precision,skip) - uključuje proizvoljan argument za preskakanje koji specificira broj bajtova koje treba preskočiti nakon svakog čitanja. Ovo može biti korisno prilikom izdvajanja podataka iz nesusednih regiona iz zapisa fiksne dužine. Ako je preciznost u formatu bita kao što je "bitN 1 ili "ubitN", određuje se vrijednost preskakanja ~ bits Opsežna lista moguće vrijednosti parametar preciznosti se može naći u MATLAB sistemu pomoći;

    count=fwrite(fid,A,precision) - upisuje elemente matrice A u datoteku, predstavljajući ih sa datom preciznošću. Podaci se upisuju u datoteku stupac po stupac, broj izlaznog argumenta sadrži broj uspješno upisanih elemenata. Vrijednost fid je cijeli broj dobiven korištenjem funkcije f open. Dodaje povratne oznake prije početka nove linije;

    count=fwrite(fid.A,precision,skip) - radi isto, ali uključuje proizvoljni argument skip, koji specificira broj bajtova koje treba preskočiti prije svakog pisanja. Ovo je korisno kada umetnete podatke u nesusedna područja u zapisima fiksne dužine. Ako je preciznost u formatu bita, kao što je "bitN" ili "ubitN", vrijednost preskakanja je navedena u bitovima.

primjeri:

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

Fid =

"A=magija(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

» count = fwrite(j.A)

Count =

"status=fclose(3)

Status =

» 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

count =

Operacije na formatiranim datotekama

Pozivaju se datoteke koje sadrže formatirane podatke formatirane datoteke. Ispod su funkcije koje se koriste za rad s takvim datotekama.

    Linija = fgetl(fid) - vraća liniju od datoteka sa identifikatorom fid sa uklonjenim znakom na kraju reda. Ako fgetl otkrije kraj datoteke, vraća -1 (pogledajte fopen za detaljniji opis fid-a);

    Linija = f dobija (fid) - vraća liniju iz datoteke sa identifikatorom fid, bez uklanjanja znaka za kraj linije. Ako fgets otkrije kraj datoteke, vraća -1;

    Linija = fgets(fid.nchar) - ne vraća više od nchar prvih znakova reda. Nakon kraja reda ili kraja datoteke, ne čitaju se dodatni znakovi (pogledajte primjere za funkciju fscanf);

    Count = fprintf(fid.format,A....) - formatira podatke sadržane u realnom dijelu matrice A, pod kontrolom linije formata, i upisuje ih u datoteku sa identifikatorom fid. Funkcija fprintf vraća broj upisanih bajtova. Vrijednost fid je cijeli broj koji vraća fopen.

Ako izostavite fid identifikator iz liste argumenata funkcije fprintf, onda će izlaz biti na ekranu, baš kao kada se koristi standardni izlaz (fid=l).

    fprintf(format,A....) - snimanje se vrši na standardni uređaj- ekran (ali ne u fajl). Niz formata specificira sistem brojeva, poravnanje, značajne figure, širina polja i drugi atributi izlaznog formata. Može sadržavati redovna slova abecede zajedno s kvalifikatorima, oznakama za poravnanje itd.

Tabela 19.1. Posebni znakovi u nizovima formata

Simbol

Opis

\n

Nova linija

\t

Horizontalna tabela

\b

Vrati jedan znak

\r

Povrat kočije

\f

Nova stranica

\\

Povratna kosa crta

\" ili "

Jednostruki citat

%%

Procenat

Funkcija fprintf ponaša se kao ANSI C funkcija fprintf, sa nekim izuzecima i ekstenzijama. U tabeli 19.1 opisuje posebne znakove koji se nalaze u format linija. Za izlaz numeričkih ili znakovnih podataka u nizu formata morate koristiti specifikacije navedeno u tabeli. 19.2.

Tabela 19.2. Specifikatori izlaznog formata

Specifier

Opis

%d Decimalni sistem oznake (sa znakom)
*Sa Jedan karakter

%e

Naučni prikaz brojeva pomoću simbola "e" na dnu registar, na primjer 3.1415e + 00

Naučni prikaz brojeva pomoću simbola "E" na vrhu registar, na primjer 3.1415E + 00

%f

Notacija fiksne tačke

%g

Najkompaktnija opcija od %e i %f. Vodeće nule se ne izlaze

%G

Isto kao %d, ali koristi velika slova za znak "E".

%O

Oktalna notacija (nepotpisana)

%s

Niz znakova

%u

Decimalni zapis (bez predznaka)

%x


Heksadecimalni zapis pomoću simbola mala slova(“a”...”f”)

%X

Heksadecimalni zapis koji koristi velika slova ("A"..."F")

Dodatni znakovi se mogu umetnuti između znaka procenta i slova u specifikaciji. Njihovo značenje je objašnjeno u tabeli. 19.3.

Tabela 19.3. Opcije specifikacije formata

Simbol

Opis

Primjer

Znak minus" (-)

Poravnavanje konvertovanih argumenata na lijevo

%-5,2d

znak plus (+)

Uvijek odštampajte znak broja (+ ili -)

%+5,2d

nula (0)

Padding sa nulama umjesto razmacima

%05.2d

Brojevi

Određuje minimalni broj znakova koji će biti ispisani

%6f

Brojevi (posle tačke)

Broj iza tačke određuje broj ispisanih znakovadesno od decimalnog zareza

%6.2f

    A = fscanf(fid,format) - čita sve podatke iz datoteke sa identifikatorom, fid, transformiše ih prema vrijednosti parametra formata i vraća ih kao matricu A. Vrijednost identifikatora fid je cijeli broj koji vraća funkcija fopen. Parametar formata je niz koji specificira format podataka koji se čitaju;

    Fscanf(fid.format,size) - čita količinu podataka specificiranu parametrom veličine, pretvara je u skladu sa parametrom formata i vraća je zajedno sa brojem uspješno pročitanih elemenata brojanja. Parametar veličine je proizvoljan argument koji specificira količinu podataka za čitanje. Dozvoljene su sljedeće vrijednosti:

    • inf - čita elemente do kraja datoteke i postavlja ih u vektor kolone koji sadrži isti broj elemenata kao u datoteci;

      Čita onoliko elemenata koliko je potrebno za popunjavanje matrice veličine txp. Popunjavanje se vrši u kolonama. Vrijednost n (ali ne!) može uzeti vrijednost Inf.

Niz formata se sastoji od redovni likovi i/ili specifikacije. Specifikatori označavaju tip podataka koji se čitaju i uključuju karakter %, opcija širine polja i format znakova. Mogući znakovi formata navedeni su u tabeli. 19.4.

Tabela 19.4. Formatirajte znakove koje koristi funkcija fscanf

Simbol

Opis

Redoslijed znakova; parametar širine polja određuje broj pročitanih znakova

%d

Decimalni broj

%e, %f, %g

Broj s pomičnim zarezom

%i

Potpisani cijeli broj

%o

Oktalni broj sa znakom

%s

Niz znakova koji nisu razmak

%u

Predpisani decimalni cijeli broj

%x

Heksadecimalni cijeli broj sa predznakom

[...]

Slijed karaktera

Između simbola % i simbol formata dozvoljeno je umetanje sljedećih znakova:

    Zvjezdica (*) znači da odgovarajuća vrijednost ne mora biti pohranjena u izlaznoj matrici;

    Niz brojeva specificira maksimalna širina polja;

    Slovo označava veličinu rezultirajućeg objekta: h za kratki cijeli broj (kao što je %n d), 1 za dug cijeli broj (kao što je %ld) ili za broj s pomičnim zarezom dvostruke preciznosti (kao što je % lg ).

primjeri:

"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)

Ans =

3.142 0.000000

» fgets(fid)

Ans =

» fclose(fid)

Ans=

Pozicioniranje fajla

Prilikom čitanja i pisanja datoteka, oni se konvencionalno predstavljaju kao linearno raspoređeni podaci, slično snimanju na kontinuiranu magnetnu traku. Lokacija s koje se trenutno očitava (ili pozicija s koje se snimanje u toku), određena posebnim pokazivač. Datoteke sekvencijalnog pristupa se skeniraju striktno od početka do kraja iu datotekama slučajni pristup Pokazivač se može postaviti bilo gdje iz kojeg se pišu ili čitaju podaci.

Dakle, pokazivač omogućava pozicioniranje datoteke. Dostupne su brojne funkcije pozicioniranja:

    Eofstat = feof(fid) - provjerava da li je dostignut kraj datoteke sa identifikatorom fid. Vraća 1 ako je pokazivač postavljen na kraj datoteke, 0 u suprotnom;

    Poruka = ​​ferror(fid) - vraća informacije o grešci kao niz poruke. Argument fid je identifikator otvorene datoteke (pogledajte funkciju fopen za njen detaljan opis);

    Poruka = ​​f error (f id,"clear") - briše indikator greške za navedeni fajl;

    Ferror(.) - Vraća broj greške errnum posljednje I/O operacije za dati fajl.

Ako je posljednja I/O operacija izvedena na datoteci specificiranoj vrijednosti fid bila uspješna, vrijednost poruke je prazan red, a errnum uzima vrijednost 0.

Vrijednost errnum različita od nule označava da se dogodila greška tijekom posljednje I/O operacije. Parametar poruke sadrži niz koji sadrži informacije o prirodi greške koja se dogodila.

primjer:

» fid=fopen("s:\examplel"."a+")

Fid =

» t= fread(3,)

Prazna matrica: 4 po 0

» feror(3)

Ans =

Da li je fajl otvoren za čitanje? . . .

    frewind(fid) - postavlja pokazivač pozicije na početak datoteke sa identifikatorom fid;

    Status - fseekCfid,offset,origin) - postavlja pokazivač u datoteci sa identifikatorom fid na datu poziciju - po bajtu, specificirano parametrom pomak u odnosu na ishodište.

Argumenti:

    Fid je ID datoteke koji vraća funkcija fopen;

    offset je vrijednost koja se tumači na sljedeći način:

    • offset>0 - mijenja poziciju pokazivača na pomak bajtova prema kraju datoteke;

      offset=0 - ne mijenja poziciju pokazivača;

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

    Porijeklo je argument koji uzima sljedeće vrijednosti:

    • "bof ili -1 - početak datoteke;

      "cof" ili 0 - trenutna pozicija pokazivača u datoteci;

      "eof" ili 1 - kraj datoteke;

    status je izlazni argument. Vraća vrijednost 0 ako je operacija fseek bila uspješna, i -1 u suprotnom. Ako dođe do greške, koristite funkciju ferror da biste dobili detaljnije informacije;

    position=ftel I (fid) - vraća poziciju pokazivača za datoteku sa identifikatorom fid dobijenom pomoću fopen funkcije. Pozicija izlaznog argumenta je nenegativan cijeli broj koji specificira poziciju pokazivača u bajtovima u odnosu na početak datoteke. Ako je zahtjev bio neuspješan, pozicija uzima vrijednost -1. Koristite funkciju ferror da prikažete prirodu greške.

primjeri:

» f id-fopen("c:\example"."a+")

Fid =

» count = fwrite(3,magic(6))

Broj = 36

» ftelK3)

Ans =

» frewind(3):ftell(3)

Ans =

» fseek(3.12.0);ftell(3)

ans=

» feof(3)

Ans =

» fclose(3)

Ans =

    S=sprintf(format,A,...) - formatira podatke u matrici A u formatu specificiranom parametrom formata i iz njega kreira string varijablu s;

    SprintfCformat,A....) - slično prethodno opisanoj funkciji, ali dodatno vraća string greške errmsg ako je došlo do greške, ili prazan string u suprotnom. Niz formata specificira sistem brojeva, poravnanje, značajne cifre, širinu polja i druge atribute izlaznog formata. Može sadržavati regularne znakove zajedno sa specifikacijama, oznakama za poravnanje, itd. Funkcija fprintf se ponaša kao funkcija ANSI C fprintf 0, sa nekim izuzecima i ekstenzijama.

primjeri:

» sprintfC"*0.5g".(l+sqrt(7))/4)

ans =

0.91144

» sprintfC "%s","Zdravo")

ans =

zdravo

Funkcija sscanf je slična funkciji fscanf osim što čita podatke iz MATLAB karakterne varijable, a ne iz datoteke.

    A = sscanf (s,format) - čita podatke iz karakterne varijable s, transformiše ih prema vrijednosti formata i na osnovu ovih podataka kreira matricu A. Parametar formata određuje format podataka koji će se čitati;

    A = sscanf(s,format,size) - čita količinu podataka specificiranu parametrom size i pretvara je u skladu sa nizom formata. Parametar veličine je argument koji specificira količinu podataka za čitanje. Dozvoljene su sljedeće vrijednosti:

    • n - čitanje n elemenata u vektor kolone;

      inf - čita elemente do kraja karakterne varijable i postavlja ih u vektor kolone koji sadrži isti broj elemenata kao u string varijabli;

      Čita onoliko elemenata koliko je potrebno za popunjavanje matrice veličine txp. Popunjavanje se vrši u kolonama. Vrijednost n (ali ne!) može poprimiti vrijednost Inf.

    Sscanf(...) - čita podatke iz karakterne varijable s, pretvara ih prema vrijednosti formata i vraća ih u matricu A. Parametar brojanja je izlazni argument koji vraća broj uspješno pročitanih elemenata; errmsg je izlazni argument koji vraća string greške ako je došlo do greške i prazan string u suprotnom; nextindex je izlazni argument koji sadrži broj jedan veći od broja znakova u s.

Niz formata se sastoji od regularnih znakova i specifikacija. Specifikatori označavaju tip podataka i uključuju simbol %, opcija širine polja i format znakova. Objašnjenja se mogu naći u opisu funkcije fscanf.

primjer:

» s = "4,83 3,16 22 45";

" = sscanf(s. "%f")

A =

4.8300 - 3.1600

22.0000

45.0000

Err=

sljedeći =

Specijalizovani fajlovi

Sljedeće karakteristike su neke od njih specijalizovani fajlovi:

    M = dlmread(ime datoteke, graničnik) - čita podatke iz ASCII-razgraničenog imena datoteke, koristeći graničnik, u niz M. Koristite "\t", i da navedete znak tabulatora kao graničnik;

    M = dlmreadCfilename.delimiter,g.c) - čita podatke iz naziva datoteke razdvojenog ASCII-om, koristeći graničnik, u niz M, počevši od pomaka r (po redovima) i c (po kolonama). Parametri r i c se broje počevši od nule, tako da r=0, c=0 odgovara prvoj vrijednosti u datoteci;

    M = dlmreadCfilename, deli mi ten, r, c, range) - uvozi indeksirani ili imenovani opseg ASCII razgraničenih podataka. Da biste koristili raspon ćelija, trebate definirati parametar raspona u obliku raspon = [TopRow. LeftColumn. Donji red, desna kolona].

Argumenti funkcije dlmread su sljedeći:

    Delimiter - znak koji odvaja pojedinačne elemente matrice u ASCII tabeli;

    (,) - zadani separator;

    R, c - ćelija tabele iz koje se uzimaju elementi matrice koji odgovaraju elementima u gornjem levom uglu tabele;

    raspon je vektor koji definira raspon ćelija proračunske tablice.

Naredba dlmwrite pretvara MATLAB matricu u ASCII-razgraničenu datoteku koju mogu čitati programi za proračunske tablice:

    Dl mwri te (f i 1 ename. A. delimiter) - upisuje matricu A u gornju lijevu ćeliju naziva datoteke proračunske tablice, koristeći graničnik za razdvajanje elemenata matrice. Koristite "U" da kreirate datoteku sa elementima odvojenim tabulatorima. Svi elementi sa vrijednošću 0 su izostavljeni. Na primjer, niz će se pojaviti u datoteci kao "1., 2" (ako je graničnik zarez):

    dlmwrite(filename,A,delimiter, r,c) - upisuje matricu A u ime datoteke, počevši od ćelije definisane sa r i c, koristeći graničnik;

    info=imfinfo(filename.fmt) - vraća strukturu čija polja sadrže informacije o slici u grafičkoj datoteci. Argument filename je string koji specificira ime grafičke datoteke, fmt je string koji specificira format datoteke. Datoteka mora biti u trenutnom direktoriju ili direktoriju specificiranom u MATLAB stazi. Ako imflnfo ne može pronaći datoteku pod nazivom filename, traži datoteku pod nazivom filename.fmt.

U tabeli Slika 19.5 prikazuje moguće vrijednosti za argument fmt.

Tabela 19.5. Podržani grafički formati i njihovi simboli

Ako je ime datoteke TIFF ili HDF datoteka koja sadrži više od jedne slike, tada je 1 nf o niz struktura sa zasebnim elementom (to jest, individualnom strukturom) za svaku sliku u datoteci. Na primjer, info(3) bi tada sadržavao informacije o trećoj slici u datoteci. Mnoga polja u informacijama zavise od određene datoteke i njenog formata. Međutim, prvih devet polja je uvijek isto. U tabeli Odjeljak 19.6 navodi ova polja i opisuje njihova značenja.

Tabela 19.6. Polja informacijske strukture i njihova značenja

Polje Značenje
Ime dokumenta Niz koji sadrži ime datoteke; ako datoteka nije u trenutnom direktoriju, red sadrži punu putanju do datoteke
FileModDate Niz koji sadrži datum posljednje izmjene datoteke
Veličina fajla Cijeli broj koji označava veličinu datoteke u bajtovima
Format Niz koji sadrži format datoteke specificiran parametrom fmt; za JPEG i TIFF datoteke vraća se vrijednost od tri znaka
FormatVersion Niz ili broj koji opisuje verziju formata
Širina Cijeli broj koji označava širinu slike u pikselima
Visina Cijeli broj koji označava visinu slike u pikselima
BitDepth Cijeli broj koji označava broj bitova po pikselu
ColorType Niz koji opisuje tip slike: "truecolor" za RGB sliku, "siva ton" za sliku u nijansama sive ili "indeksirano" za sliku u indeksiranoj boji

    Info = imfinfo(ime datoteke) - pokušava odrediti format datoteke na osnovu njenog sadržaja. primjer:

» info = irrifinfo("C:\exhibition\Internet.bmp")

Info =

Naziv datoteke: "C:\exhibition\Internet.bmp"

Veličina fajla: 481078

Format: "bmp"

FormatVersion: "Verzija 3 (Microsoft Windows 3.x)"

ili prave boje (RGB) slike klase uint8, naredba imwrite upisuje stvarne vrijednosti niza u datoteku. Ako je A klase double, naredba imwrite redefinira vrijednosti u nizu prije pisanja, koristeći konverziju uint8(round(255*A)). Ova operacija pretvara brojeve s pokretnim zarezom u rasponu u 8-bitne cijele brojeve u rasponu. Važeće vrijednosti za ftnt parametar su iste kao one koje se koriste s naredbom imfinfo;

    imwrite(X,map,filename,fmt) - upisuje indeksiranu sliku koja se nalazi u X nizu i odgovarajuću paletu boja u ime datoteke datoteke. Ako X sadrži sliku klase uint8, naredba imwrite upisuje stvarne vrijednosti niza u datoteku. Ako je X klase double, naredba imwrite redefinira vrijednosti u nizu prije pisanja, koristeći konverziju uintS(X-l). Paleta kontejnera mora imati dvostruku klasu; funkcija imwrite remapira vrijednosti u taru koristeći konverziju uint8(round (255*map));

    imwrite (....filename) - upisuje sliku u naziv datoteke u formatu navedenom u ekstenziji datoteke. Ekstenzija može biti jedna od važećih vrijednosti za parametar fmt;

    imwrite(....Parameter, Value....) definira parametre koji kontroliraju različita svojstva izlazne datoteke. Opcije se koriste za HDF, JPEG i TIFF datoteke;

    M = wklread(ime datoteke) - čita Lotusl23 (WK1) proračunsku tabelu u M matricu;

    M = wklread(filename.r.c) - čita podatke počevši od ćelije definirane vrijednostima (r,c). Parametri r i c su bazirani na nuli, tako da r=0, c=0 definiraju prvu ćeliju u datoteci;

    M = wklread(filename,r,c,range) - čita raspon vrijednosti specificiranih parametrom raspona, gdje raspon može biti predstavljen u jednom od sljedećih oblika:

    • vektor od četiri elementa koji definira raspon ćelija u formatu [top_row. lijevi_stupac, donji_red, desni_stupac];

      raspon ćelija definiranih nizom, na primjer "A1...C5";

      naziv raspona, definiran kao string, kao što je "Prodaja".

    wklwrite(ime datoteke.M) - upisuje vrijednosti matrice M u naziv datoteke Lotus 123 WK1 proračunske tablice;

    wklwrite(ime datoteke,M,r,c) - upisuje podatke počevši od ćelije definirane vrijednostima (r,c). Parametri r i c su bazirani na nuli, tako da r=0, c=0 definiraju prvu ćeliju u tabeli.

U tabeli Slika 19.7 prikazuje formate slika koje može čitati funkcija imread. Liste parametara i njihove moguće vrijednosti za funkciju imwrite nalaze se u tabeli. 19.8.

Treba napomenuti da većinu gore navedenih funkcija korisnici rijetko koriste. Ali oni se dosta koriste u sistemske svrhe i od velikog su interesa za stručnjake.

Tabela 19.7. Formati datoteka i njihovi kratki opisi

Format Opcije
BMP 1-bitne, 4-bitne, 8-bitne i 24-bitne nekomprimirane slike; 4-bitne i 8-bitne slike sa RLE kompresijom
HDF 8-bitne bitmape sa ili bez palete boja; 24-bitne bitmape
JPEG Bilo koje JPEG slike; JPEG slike sa nekim uobičajenim ekstenzijama
PCX 1-bitne, 8-bitne i 24-bitne slike
TIFF Bilo koje TIFF slike, uključujući!-bitne, 8-bitne i 24-bitne nekomprimirane slike; 1-bitne, 8-bitne i 24-bitne slike sa packbit kompresijom; 1-bitne slike sa CCITT kompresijom
XWD 1-bitni i 8-bitni Zpixmaps; XYBitmaps; 1-bitne XYPixmape

Tabela 19.8. Opcije koje se koriste prilikom snimanja grafičkih datoteka

Parametar Značenje Zadana vrijednost
Opcije za HDF datoteke
"Kompresija" Jedna od sljedećih vrijednosti: "none", Vie, "jpeg" "rle"
"kvalitet" Broj između 0 i 100; parametar podržan za "Compression"="jpeg"; što je veći broj, to je veći kvalitet datoteke (manje izobličenja datoteke tokom kompresije) i veća je njena veličina 75
"Način pisanja" Jedna od sljedećih vrijednosti: "overwrite", "append" "prepisati"
Opcije za JPEG datoteke
"kvalitet" Broj između 0 i 100; što je veći broj, to je veći kvalitet datoteke (manje izobličenja prilikom kompresije datoteke) i veća je njena veličina. 75
Opcije za TIFF datoteke
"Kompresija" Jedna od sljedećih vrijednosti: "none", "packbits", "ccitt"; vrijednost "ccitt" vrijedi samo za binarne (dvobojne) slike "ccitt" za binarne slike; "packbits" za sve ostale
"Opis" Bilo koji niz; vrijednost polja ImageDescription vraća se naredbom imfinfo Prazan red
"rezolucija" Skalarna vrijednost za rezoluciju u x i y smjerovima
72

Šta smo novo naučili?

U ovoj lekciji naučili smo:

    Otvaranje i zatvaranje datoteka.

    Izvršite operacije nad binarnim i formatiranim datotekama.

    Postavite datoteku.

    Koristite specijalizovane fajlove.

Najčešći uzrok problema s otvaranjem MATLAB datoteka je jednostavno nedostatak odgovarajućih aplikacija instaliranih na vašem računalu. U ovom slučaju, dovoljno je pronaći, preuzeti i instalirati aplikaciju koja poslužuje datoteke u MATLAB formatu - takvi programi su dostupni u nastavku.

Sistem pretraživanja

Unesite ekstenziju datoteke

Upomoć

Clue

Imajte na umu da se neki kodirani podaci iz datoteka koje naš računar ne čita ponekad mogu vidjeti u Notepadu. Na taj način ćemo čitati fragmente teksta ili brojeve - Vrijedi provjeriti da li ova metoda radi i u slučaju MATLAB datoteka.

Šta učiniti ako je aplikacija sa liste već instalirana?

Često se instalirana aplikacija automatski povezuje sa MATLAB datotekom. Ako se to ne dogodi, MATLAB datoteka se može uspješno povezati ručno s novoinstaliranom aplikacijom. Samo kliknite desnim tasterom miša na MATLAB datoteku, a zatim izaberite opciju “Izaberi podrazumevani program” od dostupnih. Zatim morate odabrati opciju “Prikaz” i pronaći svoju omiljenu aplikaciju. Unesene promjene moraju biti odobrene pomoću opcije "OK".

Programi koji otvaraju MATLAB fajl

Windows

Zašto ne mogu da otvorim MATLAB fajl?

Problemi sa MATLAB datotekama mogu imati i druge uzroke. Ponekad čak ni instaliranje softvera na vašem računalu koji podržava MATLAB datoteke neće riješiti problem. Razlog nemogućnosti otvaranja i rada sa MATLAB fajlom može biti i:

Neprikladne MATLAB asocijacije datoteka u unosima registra
- oštećenje MATLAB fajla koji otvaramo
- Infekcija MATLAB fajlova (virusi)
- premalo računarskih resursa
- zastareli drajveri
- uklanjanje MATLAB ekstenzije iz Windows registra
- nepotpuna instalacija programa koji podržava MATLAB ekstenziju

Rješavanje ovih problema bi trebalo rezultirati time da se MATLAB datoteke mogu otvarati i raditi s lakoćom. U slučaju da vaš računar i dalje ima problema s datotekama, trebate potražiti pomoć stručnjaka koji će utvrditi tačan uzrok.

Moj računar ne prikazuje ekstenzije datoteka, šta da radim?

U standardnim instalacijama Windows sistema, korisnik računara ne vidi ekstenziju datoteke MATLAB. Ovo se može uspješno promijeniti u postavkama. Samo idite na "Control Panel" i odaberite "View and Personalization". Zatim morate otići na "Opcije mape" i otvoriti "Prikaz". Na kartici "Prikaz" postoji opcija "Sakrij ekstenzije poznatih tipova datoteka" - morate odabrati ovu opciju i potvrditi operaciju klikom na dugme "OK". U ovom trenutku, ekstenzije svih datoteka, uključujući MATLAB, trebale bi se pojaviti sortirane po imenu datoteke.

Najbolji članci na ovu temu