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

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

). Među alatima opće namjene koji se koriste u kemometriji posebno mjesto zauzima MatLab paket. Njegova popularnost je iznimno visoka. To je zato što je MatLab moćna i svestrana višedimenzionalna obrada podataka. Sama struktura paketa čini ga praktičnim alatom za izvođenje matričnih izračuna. Raspon problema čije se proučavanje može provesti uz pomoć MatLaba obuhvaća: matričnu analizu, obradu signala i slike, neuronske mreže i mnogi drugi. MatLab je jezik visoke razine otvoreni izvor, što iskusnim korisnicima omogućuje razumijevanje programiranih algoritama. Jednostavan ugrađeni programski jezik olakšava stvaranje vlastitih algoritama. Dugi niz godina korištenja MatLaba, velika količina funkcije i ToolBox (paket specijaliziranih alata). Najpopularniji je PLS ToolBox tvrtke Eigenvector Research, Inc.

1. Osnovne informacije

1.1. MatLab radno okruženje

Za pokretanje programa dvaput kliknite na ikonu. Pred vama će se otvoriti radno okruženje prikazano na slici.

Radni prostor MatLab 6.x malo drugačije od radnog okruženja prethodnih verzija, ima praktičnije sučelje za pristup mnogim pomoćnim elementima

Radni prostor MatLab 6.x sadrži sljedeće stavke:

    alatna traka s gumbima i padajućim popisom;

    Prozor s karticama Launch Pad i Radni prostor iz koje možete pristupiti razni moduli ToolBox i sadržajima radnog okruženja;

    prozor s karticama Povijest naredbi i Trenutni imenik, namijenjen za pregled i pozivanje prethodno unesenih naredbi, kao i za postavljanje trenutnog imenika;

    naredbeni prozor, koji sadrži prompt "i trepćući okomiti kursor;

    statusna traka.

Ako je u radnom okruženju MatLab 6.x neki prozori prikazani na slici nedostaju, a zatim odaberite odgovarajuće stavke u izborniku Pogled: Naredbeni prozor, Povijest naredbi, Trenutni imenik, Workspace, Launch Pad.

Naredbe treba upisati u naredbeni prozor. Ne morate upisivati ​​"znak" da biste označili prompt naredbenog retka. Pogledati radno područje prikladno je koristiti trake za pomicanje ili tipke Home, End za pomicanje lijevo ili desno i PageUp, PageDown za pomicanje gore ili dolje. Ako iznenada, nakon pomicanja po radnom području naredbenog prozora, naredbeni redak s trepćućim pokazivačem nestane, samo pritisnite Enter.

Važno je zapamtiti da skup bilo koje naredbe ili izraza mora završiti pritiskom na Enter, kako bi MatLab izvršio ovu naredbu ili izračunao izraz.

1.2. Najjednostavniji izračuni

Upišite 1 + 2 u naredbeni redak i pritisnite Enter. Kao rezultat, u naredbenom prozoru MatLab-a prikazuje se sljedeće:

Riža. 2 Grafički prikaz analize glavne komponente

Što je napravio MatLab? Prvo je izračunala zbroj 1 + 2, zatim je rezultat zapisala u posebnu varijablu ans i ispisala njegovu vrijednost, jednaku 3, u naredbeni prozor. Ispod odgovora nalazi se naredbeni redak s trepćućim kursorom, što pokazuje da je MatLab spreman za daljnje izračune. Možete upisati nove izraze u naredbeni redak i pronaći njihove vrijednosti. Ako trebate nastaviti raditi s prethodnim izrazom, na primjer, izračunati (1 + 2) /4.5, tada je najlakši način koristiti već postojeći rezultat koji je pohranjen u varijablu ans. Upišite ans / 4.5 (kod unosa decimalnih razlomaka koristi se točka) i pritisnite Unesi, ispada

Riža. 3 Grafički prikaz analize glavne komponente

1.3. Echo naredbe

Svaka naredba u MatLabu se ponavlja. U gornjem primjeru, ovo je odgovor ans = 0,6667. Često jeka otežava percepciju rada programa i tada se može isključiti. Da biste to učinili, naredba mora završiti točkom i zarezom. na primjer

Riža. 4 Primjer unosa funkcije ScoresPCA

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

Najlakši način za spremanje svih vrijednosti varijabli je korištenje stavke Spremi radni prostor kao na izborniku Datoteka. Pojavit će se dijaloški okvir Save Workspase Variables, u kojem morate navesti ime direktorija i datoteke. Prema zadanim postavkama, predlaže se spremanje datoteke u radni poddirektorij glavnog MatLab direktorija. Program će rezultate rada spremiti u datoteku s nastavkom mat. Sada možete zatvoriti MatLab. U sljedećoj sesiji, da biste vratili vrijednosti varijabli, otvorite ovu spremljenu datoteku koristeći podstavku Otvori izbornika Datoteka. Sada su sve varijable definirane u prethodnoj sesiji ponovno dostupne. Mogu se koristiti u novounesenim naredbama.

1.5. Časopis

MatLab ima sposobnost pisanja izvršne naredbe a rezultate u tekstualnu datoteku (vodite dnevnik rada), koji se zatim može pročitati ili ispisati iz uređivača teksta. Za početak zapisivanja upotrijebite naredbu dnevnik... Kao argument naredbe dnevnik morate odrediti naziv datoteke u kojoj će se pohraniti dnevnik rada. Naredbe koje se dalje upisuju i rezultati njihovog izvršenja bit će zapisani u ovu datoteku, na primjer, niz naredbi

obavlja sljedeće radnje:

    otvara zapisnik u datoteci exampl-1.txt;

    vrši izračune;

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

    sprema zapisnik u datoteku exampl-1.txt u radni poddirektorij MatLab korijenskog direktorija i zatvara MatLab;

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

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

Spremi rad-1
prestati

1.6. Sustav pomoći

MatLab prozor pomoći pojavljuje se nakon odabira opcije Help Window u izborniku Help ili klikom na gumb za pitanje na alatnoj traci. Ista se operacija može izvesti upisivanjem naredbe helpwin... Da biste prikazali prozor pomoći za pojedinačne odjeljke, upišite helpwin tema... Prozor pomoći pruža vam iste informacije kao i naredba za pomoć, ali prozorsko sučelje pruža više zgodna komunikacija s drugim temama pomoći. Koristeći adresu web stranice Math Works, možete se prijaviti na poslužitelj tvrtke i dobiti najnovije informacije o svojim pitanjima. Možete se upoznati s novim softverskim proizvodima ili pronaći odgovor na svoje probleme na stranici tehničke podrške.

2. Matrice

2.1. Skalari, vektori i matrice

U MatLabu se mogu koristiti skalari, vektori i matrice. Za unos skalara dovoljno je dodijeliti njegovu vrijednost nekoj varijabli, na primjer

Imajte na umu da MatLab razlikuje velika slova 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 retka 1 × 3, koristite sljedeću naredbu u kojoj su elementi retka odvojeni razmacima ili zarezima.

Kada unosite vektor stupca, stavke odvojite točkom i zarezom. Na primjer,

Prikladno je unositi male matrice izravno iz naredbenog retka. Dok tipkate, matrica se može smatrati vektorom stupca, čiji je svaki element vektor reda.

ili matricu možemo zamisliti kao vektor reda, čiji je svaki element vektor stupca.

2.2. Pristup elementima

Elementima matrice se pristupa pomoću dva indeksa - brojeva redaka i stupaca, koji su priloženi okrugle zagrade, na primjer, naredba B (2,3) će vratiti element drugog retka i trećeg stupca matrice B. Za odabir stupca ili retka iz matrice upotrijebite broj stupca ili retka matrice kao jedan od indeksa, a drugi indeks zamijenite dvotočkom. Na primjer, drugi red matrice A upisujemo u vektor z

Također možete istaknuti blokove matrica pomoću dvotočka. Na primjer, odaberite iz matrice P blok označen bojom

Ako trebate vidjeti varijable radnog okruženja, u naredbeni redak trebate upisati naredbu čiji .

Možete vidjeti da radni prostor 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 zbrajanje ili oduzimanje matrice moraju biti iste veličine, a pri množenju broj stupaca u prvoj matrici mora biti jednak broju redaka u drugoj matrici. Zbrajanje i oduzimanje matrica, kao i brojeva i vektora, vrši se pomoću znakova plus i minus

a množenje je označeno zvjezdicom *. Uvesti matricu 3 × 2

Množenje matrice brojem također se provodi pomoću zvjezdice, a možete množiti s brojem i s desne i lijeve strane. Erekcija kvadratna matrica na cjelobrojni stepen se proizvodi pomoću ^ operatora

Provjerite svoj rezultat tako da pomnožite P matricu samu.

2.4. Izrada posebnih matrica

Ispunjavanje 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 s nultom srednjom i jediničnom varijansom.

Funkcija dijag formira dijagonalnu matricu od vektora raspoređivanjem elemenata dijagonalno.

2.5. Matrični izračuni

MatLab sadrži mnogo različitih funkcija za rad s matricama. Tako se, na primjer, matrica transponira pomoću apostrofa "

Nalaz inverzna matrica provodi se pomoću funkcije inv za kvadratne matrice

3. Integracija MatLaba i Excela

Integracija MatLaba i Excela omogućuje korisniku Excel-a pristup brojnim MatLab funkcijama za obradu podataka, razne izračune i vizualizaciju rezultata. Dodatak excllink.xla implementira ovo poboljšanje u Excelu. Za komunikaciju između MatLaba i Excela definirane su posebne funkcije.

3.1. Konfiguriranje Excela

Prije postavljanja Excela na zajednički rad s MatLabom, trebali biste biti sigurni da je Excel Link uključen u instaliranu verziju MatLaba. Dodatna datoteka excllink.xla mora se nalaziti u poddirektoriju exclink glavnog direktorija MatLab-a ili poddirektoriju alata. Pokrenite Excel i odaberite Dodaci s izbornika Alati. Otvorit će se dijaloški okvir s informacijama o dostupnim ovaj trenutak nadgradnje. Upotrijebite gumb Browse da odredite put do datoteke excllink.xla. Na popisu dodataka dijaloški okvir pojavit će se linija Excel Link 2.0 za korištenje s MatLabom s postavljenom zastavom. Kliknite U redu, potrebni dodatak je dodan u Excel.

Imajte na umu da Excel sada ima ploču Excel alati Veza koja sadrži tri gumba: putmatrix, getmatrix, evalstring. Ovi gumbi implementiraju glavne radnje potrebne za implementaciju odnosa između Excela i MatLaba - razmjenu matričnih podataka i izvršavanje MatLab naredbi iz Excel okruženja. Kod ponovljenih lansiranja Dodatak za Excel excllink.xla se povezuje automatski.

Koordinirani rad Excela i MatLaba zahtijeva još nekoliko postavki koje su standardno prihvaćene u Excelu (ali se mogu mijenjati). Na izborniku Alati idite na Opcije, otvara se dijaloški okvir Mogućnosti. Odaberite karticu Općenito i provjerite je li zastavica referentnog stila R1C1 isključena, tj. ćelije su označene brojevima A1, A2 itd. Na kartici Uredi mora se postaviti zastavica Premjesti odabir nakon Enter.

3.2. Razmjena podataka između MatLaba i Excela

Pokrenite Excel, provjerite je li sve učinjeno potrebne postavke kao što je opisano u prethodnom odjeljku (MatLab mora biti zatvoren). Unesite matricu u ćelije A1 do C3, koristite točku za odvajanje decimalnih mjesta u skladu sa zahtjevima programa Excel.

Odaberite podatke ćelije na listu i pritisnite gumb putmatrix, pojavit će se Excel prozor s upozorenjem da MatLab ne radi. Kliknite OK, pričekajte da se MatLab otvori.

Pojavljuje se dijaloški okvir programa Excel s redkom za unos za definiranje naziva radne varijable MatLab okruženja, u koji želite izvesti podatke iz odabranih Excel ćelija. Unesite, na primjer, M i zatvorite prozor tipkom OK. Idite na MatLab naredbeni prozor i uvjerite se da je varijabla M kreirana u proizvodnom okruženju, koja sadrži niz tri po tri:

Napravite neke operacije u MatLabu s matricom M, na primjer, obrnite je.

Poziv inv za invertiranje matrice, kao i bilo koju drugu MatLab naredbu, možete izvršiti izravno iz Excela. Pritiskom na gumb evalstring, koji se nalazi na panelu Excel Link, pojavljuje se dijaloški okvir u čiji unos treba upisati naredbu MatLab

IM = inv (M).

Rezultat je sličan onome koji se dobije pri izvršavanju naredbe u MatLab okruženju.

Vratite se u Excel, učinite ćeliju A5 trenutnom i kliknite gumb getmatrix. Pojavljuje se dijaloški okvir s redkom za unos u kojem se od vas traži da unesete naziv varijable koju želite uvesti u Excel. V u ovom slučaju takva varijabla je IM. Kliknite OK, ćelije A5 do A7 su ispunjene inverznim matričnim elementima.

Dakle, da biste izvezli matricu u MatLab, trebali biste odabrati odgovarajuće ćelije Excel radni list, a za uvoz je dovoljno navesti jednu ćeliju, koja će biti gornji lijevi element uvezenog niza. Ostali elementi bit će zapisani u ćelije lista u skladu s veličinom niza, prebrišući podatke koje sadrže, stoga trebate biti oprezni pri uvozu nizova.

Navedeni pristup je najviše na jednostavan način razmjena informacija između aplikacija - početni 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 pomoću gumba na alatnoj traci programa Excel Link. Informacije se mogu prikazati u obliku matrice, t.j. pravokutna površina radnog lista. Stanice poredane u retku ili stupcu izvoze se u vektore retka i vektore stupaca MatLaba, respektivno. Uvoz vektora retka i vektora stupaca u Excel radi na sličan način.

4. Programiranje

4.1. M-datoteke

Rad iz MatLab naredbenog retka je težak ako trebate unijeti puno naredbi i često ih mijenjati. Vođenje dnevnika s naredbom dnevnik a očuvanje radnog okruženja malo olakšava posao. Najprikladniji način za izvršavanje grupa MatLab naredbi je korištenje M-datoteka, u koje možete upisivati ​​naredbe, izvršavati ih sve odjednom ili u dijelovima, spremati ih u datoteku i koristiti ih kasnije. Editor M-datoteka namijenjen je radu s M-datotekama. Uz njegovu pomoć možete stvoriti vlastite funkcije i pozvati ih, uključujući i iz naredbenog prozora.

Otvorite izbornik Datoteka glavnog MatLab prozora i u Novoj stavci odaberite podstavku M-datoteka. Nova datoteka se otvara u prozoru uređivača M-datoteka, koji je prikazan na slici.

Postoje dvije vrste M-datoteka u MatLabu: programska datoteka ( M-datoteke skripte) koji sadrži niz naredbi i datotečnih funkcija ( Funkcija M-datoteka) koji opisuju korisnički definirane funkcije.

4.2. Program za datoteke

Upišite naredbe u uređivaču koje dovode do izgradnje dva grafikona u jednom grafičkom prozoru

Sada spremite datoteku pod nazivom mydemo.m u radni poddirektorij glavnog MatLab direktorija odabirom stavke Spremi kao u izborniku Datoteka uređivača. Da biste pokrenuli sve naredbe sadržane u datoteci za izvršenje, odaberite stavku Pokreni u izborniku Debug. Na ekranu će se pojaviti grafički prozor. Slika 1 koji sadrži grafove funkcija.

Naredbe programa datoteke izlaze u naredbeni prozor. Za suzbijanje izlaza, završite naredbe točkom-zarezom. Ako se napravi pogreška tijekom tipkanja i MatLab ne može prepoznati naredbu, tada se naredbe izvršavaju sve dok se ne unese pogrešno, nakon čega se u naredbenom prozoru prikazuje poruka o pogrešci.

Vrlo zgodna prilika koje pruža Editor M-datoteka, je izvršenje dijela naredbi. Zatvorite grafički prozor Slika 1... Odaberite mišem dok držite lijevu tipku ili tipkama sa strelicama dok držite pritisnutu Shift, prve četiri naredbe i izvršite ih iz stavke Tekst. Imajte na umu da je u grafičkom prozoru prikazan samo jedan grafikon, koji odgovara izvršenim: naredbama. 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 tijekom izvršavanja, ali su prikladni za rad s M-datotekom. Komentari počinju sa znakom postotka i automatski su označeni zelenom bojom, na primjer:

Postojeća M-datoteka otvara se pomoću stavke Otvori izbornika Datoteka radnog okruženja ili uređivača M-datoteka.

4.3. Funkcija datoteke

Gornji datotečni program je samo slijed MatLab naredbi, nema ulazne i izlazne argumente. Da biste koristili numeričke metode i prilikom programiranja vlastitih aplikacija u MatLabu, morate biti u stanju sastaviti funkcije datoteka koje proizvode potrebne radnje s ulaznim argumentima i vrati rezultat akcije u izlaznim argumentima. Pogledajmo nekoliko jednostavnih primjera koji će vam pomoći razumjeti kako raditi s funkcijama datoteka.

Centriranje se često koristi u prethodnoj obradi podataka multivarijantne kemometrijske analize. Ima smisla jednom napisati funkciju datoteke, a zatim je pozvati gdje god je potrebno centrirati. Otvorite novu datoteku u uređivaču M-datoteka i upišite

Riječ funkcija u prvom retku navodi da ova datoteka sadrži funkcijsku datoteku. Prvi redak je zaglavlje funkcije, koje sadrži naziv funkcije i popis ulaznih i izlaznih argumenata. U primjeru, naziv funkcije je centriran, jedan ulazni argument je X, a jedan izlaz je Xc. Nakon naslova slijede komentari, a zatim tijelo funkcije (u ovom primjeru sastoji se od dva retka), gdje se izračunava njezina vrijednost. Važno je da se izračunata vrijednost upiše u Xc. Obavezno uključite točku i zarez kako biste spriječili prikazivanje nepotrebnih informacija na ekranu. Sada spremite datoteku u svoj radni direktorij. Imajte na umu da odabirom stavke Spremi ili Spremi kao u izborniku Datoteka otvara se dijaloški okvir za spremanje datoteke, čije polje Naziv datoteke već sadrži centriranje naziva. Nemojte ga mijenjati, spremite funkcijsku datoteku u datoteku s predloženim imenom!

Sada se stvorena funkcija može koristiti na isti način kao i ugrađena sin, cos i drugi. Vlastite funkcije mogu se pozvati iz programske datoteke i iz druge funkcije datoteke. Pokušajte sami napisati funkciju datoteke koja će skalirati matrice, t.j. podijelite svaki stupac standardnom devijacijom za taj stupac.

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

Kada pozivate datotečne funkcije s nekoliko izlaznih argumenata, rezultat bi trebao biti zapisan u vektor odgovarajuće duljine.

4.4 Izrada rasporeda

MatLab ima brojne mogućnosti za grafička slika vektora i matrica, kao i za izradu komentara i ispis grafova. Opišimo nekoliko važnih grafičkih funkcija.

Funkcija zemljište ima različite oblike povezane s ulaznim parametrima, na primjer plot (y) stvara linearni graf ovisnosti y elemenata o njihovim indeksima. Ako su dva vektora data kao argumenti, tada će dijagram (x, y) prikazati y u odnosu na x. Na primjer, za iscrtavanje funkcije sin od 0 do 2π, učinite sljedeće

Program je izgradio graf ovisnosti koji se prikazuje u prozoru Slika 1

MatLab automatski dodjeljuje vlastitu boju svakom grafikonu (osim kada to učini korisnik), što vam omogućuje razlikovanje između skupova podataka.

Tim drži se omogućuje dodavanje krivulja postojećem grafu. Funkcija podzaplet omogućuje prikaz više grafikona u jednom prozoru

4.5 Ispis grafikona

Stavka Ispis na izborniku Datoteka i naredba ispisati ispis MatLab grafika. Izbornik Ispis otvara dijaloški okvir koji vam omogućuje odabir uobičajenih standardnih opcija ispisa. Tim ispisati pruža veću fleksibilnost u izlazu i omogućuje vam kontrolu ispisa iz M-datoteka. Rezultat se može poslati izravno na zadani pisač ili spremiti u određenu datoteku.

5. Primjeri programa

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

5.1. Centriranje i skaliranje

Analiza često zahtijeva transformaciju izvornih podataka. Najčešće korištene metode transformacije podataka su centriranje i skaliranje svake varijable prema standardnoj devijaciji. U kodu funkcije za centriranje data je matrica. Stoga je u nastavku prikazan samo kod funkcije, koji vage podaci. Imajte na umu da izvorna matrica mora biti centrirana

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

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

% kraja skaliranja

5.2. SVD / PCA

Najviše popularan način kompresija podataka u multivarijantnoj analizi je analiza glavnih komponenti (PCA). Matematički, PCA je dekompozicija izvorne matrice x, tj. njegov prikaz kao umnožak dviju matrica T i P

x = TP t + E

Matrica T naziva se matrica rezultata, matrica se naziva rezidualna matrica.

Najjednostavniji način za pronalaženje matrica T i P- koristiti SVD dekompoziciju putem standardne MatLab funkcije koja se zove svd .

funkcija = pcasvd (X)

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

% kraj pcasvd

5.3 PCA / NIPALS

Za izgradnju PCA računa i opterećenja koristi se rekurentni algoritam NIPALS, koji izračunava jednu komponentu u svakom koraku. Prvo početna matrica x se transformira (barem - centrira; vidi) i pretvara 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čuna sljedećeg ( a th) komponente, pretpostavljamo ta=t i stra=str E a+1 = Eat str a na a+1.

Kod NIPALS algoritma mogu napisati sami čitatelji, au ovom tutorialu autori daju svoju verziju. Prilikom izračuna PCA, možete unijeti broj glavnih komponenti (broj varijablePC). Ako ne znate koliko je komponenti potrebno, trebali biste u naredbeni redak napisati = pcanipals (X) i tada će program postaviti broj komponenti jednak najmanjoj od dimenzija izvorne matrice x.

funkcija = pcanipals (X, brojPC)

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

Ako je duljina (broj PC)> 0
kom = brojPC (1);
elseif (duljina (brojPC) == 0) & X_r< X_c
pc = X_r;
drugo
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 = mačka (1, P, P1 "); T =;
kraj

Kako izračunati PCA pomoću dodatka Chemometrics obrađen je u vodiču

5.4 PLS1

Najpopularnija metoda za multivarijantnu kalibraciju je metoda latentne projekcije (PLS). U ovoj metodi, matrica prediktora se istovremeno razlaže x i matrice odgovora Y:

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

Projekcija se gradi dosljedno - tako da se maksimizira korelacija između odgovarajućih vektora x-računi ta i Y-računi ua... Ako podatkovni blok Y uključuje više odgovora (tj. K> 1), možete izgraditi dvije projekcije početnih podataka - PLS1 i PLS2. U prvom slučaju, za svaki od odgovora y k konstruira se vlastiti projekcijski podprostor. Istovremeno, računi T (U) i opterećenje P (W, P) ovisi o tome koji se odgovor koristi. Ovaj pristup se naziva PLS1. Za PLS2 metodu izgrađen je samo jedan prostor za projekciju, koji je zajednički za sve odgovore.

Detaljan opis PLS metode dat je u ovoj knjizi. Za konstruiranje PLS1 računa i učitavanja koristi se rekurentni algoritam. Prvo početne matrice x i Y centar

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

a oni se pretvaraju 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čuna 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 na a+1.

Ovdje je kod 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);

% Kriterij konvergencije postavljen je vrlo visoko.
kri = 100;

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

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

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

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

% Kraj pls

O izračunu PLS1 s dodatkom KemometrijaDodaj u opisano u priručniku Metode projekcije u sustavu Excel.

5.5 PLS2

Za PLS2, algoritam je sljedeći. Prvo početne matrice x i Y transformiraju (barem - središte; 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čuna sljedećeg ( a-th) PLS2 komponente moraju se 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 = Eat str t i Fa +1 = F atq t i primijeniti isti algoritam na njih, zamjenjujući indeks a na a+1.

Ovdje je šifra, koja je također posuđena iz knjige.

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

Za i = 1: a
% Izračunajte zbroj 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 ";

% Spremite vektore u matrice.
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 vektora ss za X i Y.
SS =;

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

% Kraj plsr

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

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

O izračunu PLS2 s dodatkom KemometrijaDodaj u opisano u priručniku Metode projekcije u sustavu Excel.

Zaključak

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

Nadamo se da smo vam pomogli riješiti problem s MATLAB datotekom. Ako ne znate gdje možete preuzeti aplikaciju s našeg popisa, kliknite na link (ovo je naziv programa) - pronaći ćete detaljnije informacije o mjestu odakle možete preuzeti sigurnu instalacijsku verziju potrebnog primjena.

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

  • Kako otvoriti datoteku s nastavkom MATLAB?
  • Kako mogu pretvoriti MATLAB datoteku u drugi format?
  • Što je ekstenzija MATLAB formata datoteke?
  • Koji programi podržavaju MATLAB datoteku?

Ako nakon pregleda materijala na ovoj stranici još uvijek niste dobili zadovoljavajući odgovor na bilo koje od gornjih pitanja, to znači da ovdje predstavljene informacije o MATLAB datoteci nisu potpune. Kontaktirajte nas putem kontakt obrasca i napišite koje podatke niste pronašli.

Što bi još moglo uzrokovati problem?

Možda postoji više razloga zašto ne možete otvoriti MATLAB datoteku (ne samo nepostojanje odgovarajuće aplikacije).
Prvo- MATLAB datoteka može biti pogrešno povezana (nekompatibilna) s instaliranom aplikacijom radi održavanja. U tom slučaju morate sami promijeniti ovu vezu. U tu svrhu, desnom tipkom miša kliknite MATLAB datoteku koju želite urediti, kliknite na opciju "Za otvaranje s" a zatim s popisa odaberite program koji ste instalirali. Nakon što to učinite, problemi s otvaranjem MATLAB datoteke trebali bi potpuno nestati.
Drugo- datoteka koju želite otvoriti može jednostavno biti oštećena. Tada je najbolje rješenje pronaći novu verziju, ili je ponovno preuzeti s istog izvora kao prije (možda iz nekog razloga u prethodnoj sesiji preuzimanje MATLAB datoteke nije dovršeno i ne može se pravilno otvoriti).

Želite li pomoći?

Ako imate dodatne informacije o proširenju datoteke MATLAB, bit ćemo vam zahvalni ako ih podijelite s korisnicima naše stranice. Upotrijebite priloženi obrazac i pošaljite nam podatke o vašoj MATLAB datoteci.

Lekcija broj 19.

Rad s datotekama

    Otvaranje i zatvaranje datoteka

    Operacije binarnih datoteka

    Operacije formatirane datoteke

    Pozicioniranje datoteke

    Specijalizirane datoteke

Datoteke su prilično česti objekti u MATLAB sustavu. O nekim vrstama datoteka već smo govorili u prethodnim poglavljima. Ova lekcija pokriva svojstva datoteke koja su neovisna o njihovoj vrsti i primjenjuju se na bilo koju datoteku.

Otvaranje i zatvaranje datoteka

Datoteka obično neka zbirka podataka, objedinjena jednim imenom. Vrsta datoteke obično je određena njezinom ekstenzijom. Datoteku smatramo cjelinom, iako fizički na disku može biti predstavljena s nekoliko područja - kažu da je u ovom slučaju datoteka fragmentirana.

Prije upotrebe bilo koje datoteke, ona mora biti otvorena, i na kraju upotrebe - zatvoreno. Mnoge datoteke mogu se otvoriti i čitati u isto vrijeme. Razmotrimo naredbe za otvaranje i zatvaranje datoteka.

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

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

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

      Fig - otvara ga u uređivaču svojstava;

      M - otvara m-datoteku u editoru-debuggeru;

      Mdl - otvara model u Simulink-u;

      R - otvara, ako postoji, m-datoteku s istim imenom;

      Html - Otvara HTML dokument u pregledniku pomoći.

Ako datoteke s ekstenzijom postoje na putu MATLAB-a, tada se otvara datoteka koja je vraćena naredbom which name, ako ne, onda datoteka iz datotečnog sustava. Ako datoteka nema ekstenziju imena, tada je otvara program čiji bi format datoteke detektirala funkcija igpsiGname ") Prema zadanim postavkama, za sve datoteke sa završetcima koji nisu gore navedeni, poziva se openother. Otvoreni pozivi funkcije orepxxx, gdje je xxx ekstenzija datoteke. Iznimke su varijable radnog prostora za koje se poziva openvar i grafike za koje se poziva openim. Kreiranjem t-datoteka pod nazivom orepxxx, korisnici mogu mijenjati rukovanje datotekama i dodati nova proširenja na popisu. Zatvori datoteke otvorene kada pomoć otvoriti, trebate od urednika pod nazivom onxxx.

    Uigetfile (FILTERSPEC. Naslov). Otvara dijaloški okvir pod nazivom Naslov i filtar FILTERSPEC (na primjer, polje ćelija koje sadrži ekstenzije datoteke) i vraća datoteku koju je odabrao korisnik i put do nje. Vraća FILENAME = 0 ako datoteka ne postoji ili ako je korisnik kliknuo Odustani. = uigetfile (FILTERSPEC, Naslov. X. Y) postavlja dijaloški okvir u točku X, Y (koordinate u pikselima).

Primjer:

Uigetfile ("*. M; *. Fig; *. Mat: *. Mdl". "Sve MATLAB datoteke (* .m, * .fig, * .mat. * .Mdl)": ...

    Uiputfile (FILTERSPEC. TITLE) sprema datoteku u dijalog koji kontrolira korisnik. Parametri su isti kao u funkciji uigetfile.

    Naredba ui open otvara dijaloški okvir, a ako je korisnik odabrao datoteku s poznato proširenje, poziva ga korištenjem open, ili ako naziv datoteke ima nepoznato proširenje tada se poziva uigetfile. Ulazni argumenti za uiopen mogu biti mat lab, load, figure, simulink, editor. Bez ulaznih argumenata ili s ulaznim argumentom matlab, dijaloški okvir od vas traži da odaberete * .m, * .fig, * .mat,* .mdl (ako je instaliran Simulink), *. cdr (ako je tok stanja postavljen), * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb (ako je instalirana Real-Time Workshop). S argumentom opterećenja - * .mat. Uz argument figure ponuđene su * .fig; simul ink - * .mdl, editor - * .m, * .mdt * .cdr, * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb.

Primjer:

uiootvorena figura.

    Naredba uiload otvara datoteku u dijalogu koji kontrolira korisnik pomoću naredbe load.

Funkcija uvoza korisničkog sučelja pokreće Čarobnjak za uvoz koji uvozi iz datoteke u trenutnoj mapi ili međuspremniku sustava Windows. To odgovara odabiru Import Data iz izbornika File ili odabiru Paste Special iz MATLAB Edit izbornika.

    Ui import (FILENAME) - pokreće čarobnjak za uvoz otvaranjem FILENAME. Čarobnjak za uvoz prikazuje podatke za pregled. Podaci i njihov prikaz kao MATLAB varijable pojavljuju se u prozoru za pregled. Stvarni podaci, tekst i zaglavlja predstavljeni su različitim MATLAB varijablama. Za ASCII podatke morate biti sigurni da čarobnjak za uvoz prepoznaje graničnike stupaca. Samostalno može prepoznati samo tab, razmak, zarez ili točku sa zarezom. Morate kliknuti na gumb Sljedeće i u sljedećem prozoru potvrditi odabir graničnika kojeg je napravio čarobnjak ili odabrati Ostalo i upisati bilo koji graničnik.

    ui import ("-f i le") - prvo prikazuje dijaloški okvir za odabir datoteke.

    ui import ("-pastespecial") - prvo prikazuje sadržaj međuspremnika sustava Windows za pregled.

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

    Naredba uisave je spremanje koje kontrolira korisnik (naredba spremanja opisana je u lekciji 2) s dijaloškim okvirom Windows.

    Funkcija Saveas - sprema crtež ili Simulink model u željenom formatu na medij za pohranu ili na uređaj s omogućenom ispisom.

    Funkcija saveas (H, "FILENAME") - sprema podatke u skladu s grafičkom naredbom H deskriptora u datoteci FILENAME. Format datoteke određen je ekstenzijom naziva FILENAME.

    Funkcija saveas (H. "FILENAME". "FORMAT") - radi isto, ali s parametrom FORMAT (format je naveden 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. "izlaz", "fig") saveasCgcf, "izlaz", "bmp")

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

    Izbriši naziv datoteke briše datoteku u trenutnoj mapi. Može se koristiti *. Preferirana upotreba s unosom u obliku funkcije brisanja ("mw file") kada je naziv datoteke niz.

    izbrisati (H) briše grafički objekt s deskriptorom N. Ako je ovaj objekt prozor, tada je prethodno zatvoren.

    Funkcija zatvaranja (H) zatvara samo grafičke prozore. Za zatvaranje datoteka koristite naredbu f close.

Za pisanje datoteka na disk upotrijebite naredbu za spremanje, koja se koristi u prilično očiglednim oblicima:

uštedjeti

spremi naziv datoteke spremi naziv datoteke varl var2 ... spremi ... opcija spremi ("naziv datoteke", ...)

U skladu s tim, naredba load koristi se za čitanje datoteka s diska:

opterećenje

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

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

U ovim naredbama naziv datoteke je specificiran prema pravilima usvojenim u operativni sustavi MS-DOS klasa. Ove naredbe obično se dupliciraju gumbima na alatnoj traci i pregledniku datoteka.

Operacije binarnih datoteka

Binarni, ili binarni, nazivaju se datoteke čiji su podaci strojni kodovi. Osnovne operacije s takvim kodovima navedene su u nastavku.

    fopen (ime datoteke, dopuštenje) - otvara datoteku s nazivom filename i parametrom navedenim u dopuštenju, te vraća fid identifikator s vrijednošću: 0 - čita se s tipkovnice (dopuštenje je postavljeno na "r"); 1 - izlaz na zaslon (dopuštenje je postavljeno na "a"); 2 - prikaz poruke o pogrešci (dopuštenje je postavljeno na "a"); -1 - neuspjeh otvaranja datoteke s izlazom poruke poruke o vrsti greške. Fid se često koristi kao argument od strane drugih funkcija i I/O programa. Naziv datoteke naziv datoteke može sadržavati put do datoteke.

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

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

    "r" - otvorena datoteka za čitanje (zadano);

    "r +" - otvorena datoteka za čitanje i pisanje;

    "w" - izbrisati sadržaj postojeće datoteke ili stvoriti novu i otvoriti je za pisanje;

    "a" - kreirajte i otvorite novu datoteku ili otvorite postojeću zazapisi priloženi na kraj datoteke.

Dodavanje "b" u ovaj redak (zadano) govori sustavu da otvori datoteku u binarnom načinu.

Dodavanje "t" umjesto b u ovaj redak, na primjer "rt", u operativnim sustavima koji razlikuju tekstualne i binarne datoteke, upućuje sustav da otvori datoteku u tekstualnom načinu. Na primjer, u svim verzijama MATLAB-a za Windows / MS-DOS i VMS, ne možete otvoriti tekstualnu datoteku bez parametra "rt". Prilikom unosa datoteka koristeći fopen u tekstualnom načinu, svi se znakovi vraćaju prije nego što se znak ukloni nova linija.

    Fopentfilename.permission, format) - Otvara datoteku kao što je gore opisano, vraćajući ID datoteke i poruku. Osim toga, vrijednost parametra formata omogućuje vam da točno odredite format broja... Postoji 8 mogućih formata, čiji opis možete pronaći u sustavu pomoći. Konkretno, niz formata može biti "native" (format računala na kojem je sustav instaliran), "vax", "sgau" (VAX i Cray računala) i tako dalje.

Određeni pozivi fread ili fwrite mogu nadjačati numerički format naveden u pozivu fopen.

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

    Fopen (fid) - Povratak puno ime datoteku, redak .permission i redak formata. Ako se koriste 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 statusa datoteke, jednak 0 ako je zatvaranje bilo uspješno, i -1 u suprotnom. Argument fid je identifikator povezan s otvorenom datotekom (pogledajte funkciju fopen za detaljniji opis);

    status = fclose ("sve") zatvara sve otvorene datoteke. Vraća 0 u slučaju uspjeha i -1 u suprotnom.

Primjer otvaranja i zatvaranja datoteke:

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

»Fclose (4)

ans =

    Fread (fid, veličina, preciznost) - čita binarne podatke iz dane 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 funkcija fopen; veličina je argument koji specificira količinu podataka za čitanje. Ako veličina nije navedena, f read čita podatke do kraja datoteke.

Koriste se sljedeći parametri veličine:

    n - čitanje n elemenata u vektor stupca;

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

Punjenje se vrši po stupcima. Ako u datoteci ima malo elemenata, tada je matrica napunjena nulama. Ako čitanje dođe do kraja datoteke bez ispunjavanja matrice potrebne veličine, tada je matrica napunjena nulama. Ako dođe do pogreške, čitanje se zaustavlja na posljednjoj očitanoj vrijednosti. Parametar preciznosti je niz koji određuje numeričku preciznost čitanja vrijednosti, kontrolira broj čitanih bitova za svaku vrijednost i tumači te bitove kao cijeli broj, plutajući zarez ili kao znak

    Fread (fid, size.precision, skip) - Uključuje proizvoljni argument za preskakanje koji određuje broj bajtova za preskakanje nakon svakog čitanja. To može biti korisno kod izdvajanja podataka u nesusjednim područjima iz zapisa fiksne duljine. Ako je preciznost u formatu bita kao što je "bitN 1 ili" ubitN", navedena je vrijednost preskakanja ~ komadići. Opsežan popis moguće vrijednosti parametar preciznosti može se naći u MATLAB sustavu pomoći;

    count = fwrite (fid, A, preciznost) - zapisuje elemente matrice A u datoteku, predstavljajući ih s određenom preciznošću. Podaci se zapisuju u datoteku stupac po stupac, a izlazni argument brojanja sadrži broj uspješno upisanih elemenata. Vrijednost fid je cijeli broj iz funkcije f open. Dodaje povratne oznake prije početka nove linije;

    count = fwrite (fid.A, preciznost, preskakanje) - čini isto, ali uključuje proizvoljni argument za preskakanje koji specificira broj bajtova za preskakanje prije svakog pisanja. Ovo je korisno kod umetanja podataka u nesusjedna područja u zapisima fiksne duljine. Ako je preciznost u formatu bita kao što je "bitN" ili "ubitN", vrijednost preskakanja navedena je 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

»Broj = fwrite (j.A)

Broji =

»Status = fclose (3)

Status =

"Dio jedra

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

broji =

Operacije formatirane datoteke

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

    Line = fgetl (fid) - Vraća niz iz datoteka s identifikatorom fid s uklonjenim znakom na kraju reda. Ako fgetl otkrije kraj datoteke, vraća -1 (pogledajte fopen za više detalja o fid-u);

    Redak = f dobiva (fid) - Vraća redak iz datoteke s identifikatorom fid bez uklanjanja znaka za kraj reda. Ako fgets otkrije kraj datoteke, vraća -1;

    Red = fgets (fid.nchar) - Vraća ne više od nchar prvih znakova retka. Ne čitaju se dodatni znakovi nakon znaka kraja reda ili kraja datoteke (pogledajte primjere za funkciju fscanf);

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

Ako izostavite identifikator fid u popisu argumenata funkcije fprintf, tada će se izlaz ispisati na zaslon, baš kao i kada se koristi standardni izlaz (fid = l).

    fprintf (format, A ....) - pisanje se izvodi na standardni uređaj- zaslon (ali ne u datoteku). Niz formata definira brojčani sustav, poravnanje, značajne brojke, širina polja i drugi atributi izlaznog formata. Može sadržavati redovna slova abecede zajedno s kvalifikatorima, znakovima za poravnanje itd.

Tablica 19.1. Posebni znakovi u nizovima formata

Simbol

Opis

\ n

Nova linija

\ t

Horizontalna kartica

\ b

Povratak jedan znak

\ r

Povrat prtljage

\ f

Nova stranica

\\

Obrnuta kosa crta

\" ili "

Jednostruki navod

%%

postotak

Funkcija fprintf ponaša se kao ANSI C ekvivalentna funkcija fprintf O, s nekim iznimkama i proširenjima. Stol 19.1 opisuje posebne znakove koji se nalaze u format string... Za prikaz brojčanih ili znakovnih podataka u nizu formata, koristite specifikacije, navedeno u tablici. 19.2.

Tablica 19.2. Specifikatori izlaznog formata

Specifikator

Opis

% d Decimalni sustav oznake (sa znakom)
*S Jedan znak

% e

Eksponencijalni zapis brojeva pomoću slova "e" u donjem dijelu registar, na primjer 3.1415e + 00

Eksponencijalni zapis brojeva pomoću slova "E" na vrhu registar, na primjer 3.1415E + 00

% f

Sustav označavanja fiksne točke

% g

Najkompaktniji od% e i% f. Završne nule se ne prikazuju

% G

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

%O

Oktalni zapis (bez predznaka)

% s

Niz znakova

% u

Decimalni zapis (bez predznaka)

% x


Heksadecimalni zapis pomoću simbola mala slova("A" ... "f")

% X

Heksadecimalni zapis pomoću velikih znakova ("A" ... "F")

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

Tablica 19.3. Opcije specificatora formata

Simbol

Opis

Primjer

Znak minus" (-)

Pretvoreni argumenti koji opravdavaju lijevo

% -5,2d

znak plus (+)

Uvijek ispišite znak broja (+ ili -)

% + 5,2d

nula (0)

Ispuna s nulama umjesto razmacima

% 05.2d

Brojevi

Određuje minimalni broj znakova za ispis

% 6f

znamenke (poslije točke)

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

% 6.2f

    A = fscanf (fid, format) - čita sve podatke iz datoteke s identifikatorom, fid, pretvara ih prema vrijednosti parametra formata i vraća 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 s parametrom formata i vraća, zajedno s brojem uspješno pročitanih elemenata, count. Parametar veličine proizvoljan je argument koji određuje količinu podataka za čitanje. Sljedeće vrijednosti su važeće:

    • inf - čitanje elemenata do kraja datoteke i njihovo postavljanje u vektor stupca koji sadrži isti broj elemenata kao u datoteci;

      Čita onoliko elemenata koliko je potrebno za popunjavanje matrice veličine thp. Punjenje se vrši po stupcima. Vrijednost n (ali ne!) Može poprimiti vrijednost Inf.

Niz formata sastoji se od obični likovi i/ili specifikacije. Specifikatori označavaju vrstu pročitanih podataka i uključuju znak %, opcija širine polja i format znakova. Mogući znakovi formata navedeni su u tablici. 19.4.

Tablica 19.4. Formatni znakovi koje koristi funkcija fscanf

Simbol

Opis

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

% d

Decimal

% e, % f, % g

Broj s pomičnim zarezom

% i

Predpisani cijeli broj

% o

Oktalni broj sa znakom

% s

Niz znakova bez razmaka

% u

Predpisani decimalni cijeli broj

% x

Heksadecimalni cijeli broj s predznakom

[...]

Slijed znakova

Između simbola % a znak formata smije umetnuti sljedeće znakove:

    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 (na primjer, % n d), 1 za dugi cijeli broj (na primjer, % ld) ili za broj s pomičnim zarezom dvostruke preciznosti (na primjer, % 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)

Odgovor =

3.142 0.000000

»Fgets (fid)

Odgovor =

»Fclose (fid)

Odgovor =

Pozicioniranje datoteke

Kada se datoteke čitaju i pišu, one se konvencionalno predstavljaju kao linearni podaci, poput snimanja na kontinuiranoj magnetskoj vrpci. Mjesto s kojeg se očitava u ovom trenutku (ili pozicija s koje snimanje u tijeku), određuje se posebnim pokazivač. Datoteke sekvencijalnog pristupa pregledavaju se strogo od početka do kraja iu datotekama nasumični pristup pokazivač se može postaviti bilo gdje odakle se pišu ili čitaju podaci iz datoteke.

Dakle, pokazivač omogućuje pozicioniranje datoteke. Dostupan je niz funkcija pozicioniranja:

    Eofstat = feof (fid) - provjerava je li dosegnut kraj datoteke s identifikatorom fid. Vraća 1 ako je pokazivač na kraju datoteke, 0 u suprotnom;

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

    Poruka = ​​f error (f id, "clear") - briše indikator pogreške za navedenu datoteku;

    Ferror (.) - Vraća errnum posljednje I/O operacije za navedenu datoteku.

Ako je posljednja I/O operacija izvedena na navedenoj datoteci fid bila uspješna, vrijednost poruke je prazan redak, a errnum je 0.

Greška različita od nule označava da je došlo do greške u posljednjoj I/O operaciji. Parametar poruke sadrži niz koji sadrži informacije o prirodi pogreške koja se dogodila.

Primjer:

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

Fid =

»T = fread (3,)

Prazna matrica: 4 po 0

»Feror (3)

Odgovor =

Je li datoteka otvorena za čitanje? ... ... ...

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

    Status - fseekCfid, offset, origin) - postavlja pokazivač u datoteci s identifikatorom fid na navedenu poziciju - po bajtu, određeno parametrom pomak u odnosu na ishodište.

Argumenti:

    Fid je identifikator datoteke koji vraća funkcija fopen;

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

    • offset> 0 - mijenja položaj pokazivača za pomak bajtova prema kraju datoteke;

      offset = 0 - ne mijenja položaj pokazivača;

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

    Porijeklo je argument koji uzima sljedeće vrijednosti:

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

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

      "eof" ili 1 - kraj datoteke;

    status je izlazni argument. Vrijednost je 0 ako je operacija fseek bila uspješna, i -1 u suprotnom. Ako dođe do pogreške, upotrijebite funkciju ferror za više pojedinosti;

    position = ftel I (fid) - Vraća poziciju pokazivača za datoteku s fid, dobivenu pomoću fopen funkcije. Izlazni argument položaja je nenegativan cijeli broj koji specificira položaj pokazivača, u bajtovima, u odnosu na početak datoteke. Ako je zahtjev bio neuspješan, pozicija je -1. Koristite funkciju ferror za prikaz prirode pogreške.

primjeri:

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

Fid =

"Broj = fwrite (3, magija (6))

Broji = 36

»FtelK3)

Odgovor =

»Frewind (3): ftell (3)

Odgovor =

"Fseek (3.12.0); ftell (3)

ans =

»Feof (3)

Odgovor =

»Fclose (3)

Odgovor =

    S = sprintf (format, A, ...) - formatira podatke u matrici A u formatu koji je specificiran parametrom formata, te od njih kreira string varijablu s;

    SprintfCformat, A ....) - slično prethodno opisanoj funkciji, ali dodatno vraća niz pogreške errmsg ako je došlo do pogreške, ili prazan niz u suprotnom. Niz formata definira brojčani sustav, poravnanje, značajne znamenke, širinu polja i druge atribute izlaznog formata. Može sadržavati regularne znakove zajedno sa specifikacijama, znakovima za poravnanje itd. Funkcija fprintf ponaša se kao analogna ANSI C funkcija fprintf 0, s nekim iznimkama i proširenjima.

primjeri:

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

ans =

0.91144

»SprintfC "% s","Hej")

ans =

Hej

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

    A = sscanf (s, format) - čita podatke iz simboličke varijable s, pretvara ih prema vrijednosti formata i na temelju tih podataka kreira matricu A. Parametar formata određuje format podataka koji se čitaju;

    A = sscanf (s, format, size) - čita količinu podataka specificiranu parametrom veličine i pretvara je u skladu s nizom formata. Parametar veličine je argument koji određuje količinu podataka za čitanje. Sljedeće vrijednosti su važeće:

    • n - čitanje n elemenata u vektor stupca;

      inf - čitanje elemenata do kraja simboličke varijable i njihovo postavljanje u vektor stupca koji sadrži isti broj elemenata kao u nizu varijabli;

      Čita onoliko elemenata koliko je potrebno za popunjavanje matrice veličine thp. Punjenje se vrši po stupcima. Količina n (ali ne!) može poprimiti vrijednost Inf.

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

Niz formata sastoji se od običnih znakova i specifikacija. Specifikatori označavaju tip podataka i uključuju znak %, opcija širine polja i format znakova. Objašnjenja se mogu pronać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 =

Specijalizirane datoteke

Funkcije u nastavku odnose se na neke specijalizirane datoteke:

    M = dlmread (ime datoteke, graničnik) - Čita podatke iz naziva datoteke razdvojenog ASCII-om, koristeći graničnik, u niz M. Upotrijebite "\ t" i za navođenje graničnika kartice;

    M = dlmreadCfilename.delimiter, gs) - čita podatke iz naziva datoteke s ASCII graničnikom, koristeći graničnik, u niz M, počevši od pomaka r (po redcima) i c (po stupcima). 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 raspon razgraničenih podataka u ASCII formatu. Da biste koristili raspon ćelija, morate definirati parametar raspona kao raspon = [TopString. Lijevi stupac. BottomRow, Right Column].

Argumenti funkcije dlmread su sljedeći:

    Razdjelnik je znak koji odvaja pojedinačne elemente matrice u ASCII proračunskoj tablici;

    (,) - zadani separator;

    R, c - ćelija proračunske tablice iz koje su preuzeti elementi matrice, što odgovara elementima u gornjem lijevom kutu tablice;

    raspon je vektor koji definira raspon ćelija u proračunskoj tablici.

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 proračunske tablice naziva datoteke, koristeći graničnik za odvajanje elemenata matrice. Upotrijebite "U" za stvaranje datoteke razdvojene tabulatorima. Svi elementi s vrijednošću 0 su izostavljeni. Na primjer, polje će se pojaviti u datoteci kao "1., 2" (ako je razdjelnik zarez):

    dlmwrite (ime datoteke, A, graničnik, r, c) - upisuje matricu A u naziv datoteke, počevši od mjesta navedenog s r i c, koristeći graničnik;

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

Stol 19.5 prikazuje moguće vrijednosti za argument fmt.

Tablica 19.5. Podržani grafički formati i njihove oznake

Ako je naziv datoteke TIFF ili HDF datoteka koja sadrži više od jedne slike, tada je 1 nf o niz struktura s zasebnim elementom (to jest, s 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 ovise o određenoj datoteci i njenom formatu. Međutim, prvih devet polja uvijek je isto. Stol 19.6 navodi ova polja i opisuje njihova značenja.

Tablica 19.6. Polja informacijske strukture i njihova značenja

Polje Značenje
Naziv datoteke Niz koji sadrži naziv datoteke; ako datoteka nije u trenutnom direktoriju, redak sadrži puni put do datoteke
FileModDate Niz koji sadrži datum zadnje izmjene datoteke
Veličina datoteke 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
FormatVerzija 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
Vrsta boje Niz koji opisuje vrstu slike: "truecolor" za RGB sliku, "sive boje" za sliku u nijansama sive ili "indeksirano" za indeksiranu sliku u boji

    Info = imfinfo (ime datoteke) - pokušava odrediti format datoteke prema sadržaju. Primjer:

»Info = irrifinfo (" S: \ izložba \ Internet.bmr ")

Info =

Naziv datoteke: "C: \ Izložba \ Internet.bmr"

Veličina datoteke: 481078

Format: "bmp"

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

ili prave boje (RGB) slike klase uint8, naredba imwrite zapisuje stvarne vrijednosti niza u datoteku. Ako je A klase double, naredba imwrite nadjačava vrijednosti u nizu prije pisanja pomoću konverzije uint8 (round (255 * A)). Ova operacija pretvara brojeve s pomičnim zarezom u rasponu u 8-bitne cijele brojeve u rasponu. Važeće vrijednosti za ftnt su iste kao za naredbu imfinfo;

    imwrite (X, map, filename, fmt) - upisuje indeksiranu sliku koja se nalazi u X nizu i odgovarajuću paletu boja tar u naziv datoteke datoteke. Ako X sadrži sliku uint8, naredba imwrite zapisuje stvarne vrijednosti niza u datoteku. Ako je X dvostruki, naredba imwrite nadjačava vrijednosti u nizu prije pisanja pomoću konverzije uintS (X-l). Paleta katrana mora biti dvostruke klase; funkcija imwrite nadjačava vrijednosti tar koristeći pretvorbu uint8 (okrugli (255 * mar));

    imwrite (.... naziv datoteke) - Zapisuje sliku u naziv datoteke u formatu navedenom ekstenzijom datoteke. Proširenje može biti jedna od valjanih vrijednosti za parametar fmt;

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

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

    M = wklread (ime datoteke.r.c) - čita podatke počevši od ćelije određene vrijednostima (r, s). Parametri r i c temelje se na nuli, tako da r = 0, c = 0 definiraju prvu ćeliju u datoteci;

    M = wklread (naziv datoteke, r, c, raspon) - Čita raspon vrijednosti određenih rasponom, pri čemu raspon može biti u jednom od sljedećih oblika:

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

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

      naziv raspona, naveden kao niz, kao što je "Sales".

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

    wklwrite (ime datoteke, M, r, c) - zapisuje podatke počevši od ćelije određene vrijednostima (r, s). Parametri r i c temelje se na nuli, tako da r = 0, c = 0 definira prvu ćeliju u proračunskoj tablici.

Stol 19.7 prikazuje formate slika koji su dostupni za čitanje pomoću funkcije imread. Popisi parametara i njihove moguće vrijednosti za funkciju imwrite nalaze se u tablici. 19.8.

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

Tablica 19.7. Formati datoteka i njihov kratak opis

Format Varijante
BMP 1-bitne, 4-bitne, 8-bitne i 24-bitne nekomprimirane slike; 4-bitne i 8-bitne RLE komprimirane slike
HDF 8-bitne bitmape, sa ili bez palete boja; 24-bitne bitmape
Jpeg Bilo koje JPEG slike; JPEG slike s nekim često korištenim ekstenzijama
PCX 1-bitne, 8-bitne i 24-bitne slike
Tiff Sve TIFF slike, uključujući!-bitne, 8-bitne i 24-bitne nekomprimirane slike; 1-bitne, 8-bitne i 24-bitne slike s packbit kompresijom; 1-bitne slike s CCITT kompresijom
XWD 1-bitne i 8-bitne Zpixmape; XYBitmaps; 1-bitne XYPixmape

Tablica 19.8. Parametri koji se koriste prilikom pisanja grafičkih datoteka

Parametar Značenje Zadana vrijednost
Opcije za HDF datoteke
"Kompresija" Jedna od sljedećih vrijednosti: "none", Vie "," jpeg " "rle"
"kvaliteta" Broj između 0 i 100; parametar je podržan za "Compression" = "jpeg"; što je veći broj, to je veća kvaliteta datoteke (manje izobličenja datoteke tijekom kompresije) i veća je njezina veličina 75
"Način pisanja" Jedna od sljedećih vrijednosti: "overwrite", "append" "prepisati"
Opcije za JPEG datoteke
"kvaliteta" Broj između 0 i 100; što je veći broj, to je veća kvaliteta datoteke (manje izobličenja pri komprimiranju datoteke) i veća je veličina datoteke. 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 Prazna linija
"rezolucija" Skalarna vrijednost za razlučivost u x i y smjerovima
72

Što smo novo naučili?

U ovom vodiču naučili smo:

    Otvaranje i zatvaranje datoteka.

    Izvođenje operacija na binarnim i formatiranim datotekama.

    Postavite datoteku.

    Primijenite specijalizirane datoteke.

Najčešći razlog za probleme s otvaranjem MATLAB datoteke jednostavno je 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 su programi dostupni u nastavku.

Sustav pretraživanja

Unesite ekstenziju datoteke

Pomozite

trag

Treba napomenuti da se neki kodirani podaci iz datoteka koje naše računalo ne čita mogu ponekad vidjeti u Notepadu. Na ovaj način čitamo dijelove teksta ili brojeva - Vrijedi provjeriti radi li ova metoda i za MATLAB datoteke.

Što ako je aplikacija s popisa već instalirana?

Često bi se instalirana aplikacija trebala automatski povezati s MATLAB datotekom. Ako se to nije dogodilo, MATLAB datoteka se može uspješno povezati s novoinstaliranom aplikacijom ručno. Dovoljno je desnom tipkom miša kliknuti na MATLAB datoteku, a zatim među dostupnima odabrati opciju "Odaberi zadani program". Zatim morate odabrati opciju "View" i pronaći svoju omiljenu aplikaciju. Unesene promjene moraju se potvrditi opcijom "OK".

Programi koji otvaraju MATLAB datoteku

Windows

Zašto ne mogu otvoriti svoju MATLAB datoteku?

Problemi s MATLAB datotekama također mogu imati drugačiju pozadinu. Ponekad čak ni instaliranje softvera koji poslužuje MATLAB datoteke na računalu neće riješiti problem. Razlog nemogućnosti otvaranja, kao i rada s MATLAB datotekom također može biti:

Nedosljedne veze MATLAB datoteka u unosima registra
- oštećenje MATLAB datoteke koju otvaramo
- infekcija MATLAB datoteka (virusi)
- premalo resursa računala
- zastarjeli upravljački programi
- eliminacija MATLAB ekstenzije iz Windows registra
- nepotpuna instalacija programa koji služi proširenju MATLAB-a

Otklanjanje ovih problema trebalo bi dovesti do slobodnog otvaranja i rada s MATLAB datotekama. U slučaju da računalo i dalje ima problema s datotekama, trebate upotrijebiti pomoć stručnjaka koji će utvrditi točan uzrok.

Moje računalo ne prikazuje ekstenzije datoteka, što da radim?

U standardnim Windows instalacijama, korisnik računala ne vidi ekstenziju datoteke MATLAB. To se može uspješno promijeniti u postavkama. Dovoljno je ući u "Upravljačku ploču" i odabrati "Izgled i personalizacija". Zatim morate ući u "Opcije mape" i otvoriti "Prikaz". Na kartici "Prikaz" nalazi se opcija "Sakrij ekstenzije poznatih vrsta datoteka" - morate odabrati ovu opciju i potvrditi operaciju pritiskom na gumb "U redu". U ovom trenutku, ekstenzije svih datoteka, uključujući MATLAB, trebale bi se pojaviti poredane po nazivu datoteke.

Vrhunski povezani članci