Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Hapja e skedarëve pdf në matlab. Bazat e programimit MatLab

Disavantazhi i funksioneve të përshkruara të ruajtjes dhe ngarkimit është se ato punojnë me formate të caktuara skedarësh (zakonisht skedarë mat) dhe nuk lejojnë ngarkimin ose ruajtjen e të dhënave në formate të tjera. Ndërkohë, ekziston nevoja për të ngarkuar informacione, për shembull, nga skedarët binare të krijuar nga të tjerët. produkte softuerike për përpunimin e mëtejshëm të rezultateve në MatLab. Për këtë qëllim janë zhvilluar funksione

fshkruaj (<идентификатор файла>, <переменная>, <тип данных>);

<переменная>= mashtrues (<идентификатор файла>);
<переменная>= mashtrues (<идентификатор файла>, <размер>);
<переменная>= mashtrues (<идентификатор файла>, <размер>, <точность>);

Këtu<идентификатор файла>është një tregues i skedarit për të punuar. Për të marrë identifikuesin, përdoret funksioni

<идентификатор файла>= hap (<имя файла>,<режим работы>);

ku parametri<режим работы>mund të marrë vlerat e treguara në tabelë. 5.1.

Tabela 5.1. Mënyrat e punës me skedarë në MatLab

parametri<режим работы>

përshkrim

shkruani (fshin përmbajtjen e mëparshme të skedarit)

shtoj (krijon një skedar nëse nuk ekziston)

lexoni dhe shkruani (nuk krijon një skedar nëse nuk ekziston)

lexo dhe shkruaj (pastron përmbajtjen e vjetër ose krijon një skedar nëse nuk ekziston)

lexo dhe shto (krijon një skedar nëse nuk ekziston)

një parametër shtesë që do të thotë punë me skedarë binare p.sh. 'wb', 'rb' '' rb + '', 'ab ', etj.

Nëse funksioni fopen () për ndonjë arsye nuk mund ta hapë skedarin saktë, atëherë ai kthen -1. Më poshtë është një fragment i programit për shkrimin dhe leximin e të dhënave nga një skedar binar:

A =;

fid = fopen ("my_file.dat", "wb"); % hap skedarin për shkrim

gabim ("Skedari nuk hapet");
fund

fwrite (fid, A, "dyfish"); % e shkrimit të matricës në skedar (40 bajt)
fclose (fid); % mbyll skedarin

fid = fopen ("my_file.dat", "rb"); % hap skedarin për lexim
nëse fid == -1% kontrolloni nëse hapja është e saktë
gabim ("Skedari nuk hapet");
fund

B = fread (fid, 5, "dyfish"); % lexoi 5 vlera të dyfishta
disp (B); % shfaqja në ekran
fclose (fid); % mbyll skedarin

Si rezultat i ekzekutimit të këtij programi, në drejtorinë e punës do të krijohet një skedar 40-byte my_file.dat, i cili do të përmbajë 5 vlera të dyfishta të shkruara si një sekuencë bajtash (8 bajt për secilën vlerë). Funksioni fread () lexon bajtet e ruajtura në mënyrë sekuenciale dhe i konverton automatikisht në tip dyfish, d.m.th. çdo 8 bajt interpretohen si një vlerë e dyfishtë.

Në shembullin e dhënë, numri i elementeve (pesë) për t'u lexuar nga skedari është treguar në mënyrë eksplicite. Megjithatë, numri i përgjithshëm i elementeve shpesh nuk dihet paraprakisht, ose ndryshon gjatë funksionimit të programit. Në këtë rast, do të ishte më mirë të lexohen të dhënat nga skedari derisa të arrihet fundi i skedarit. Ekziston një funksion në MatLab për të kontrolluar nëse është arritur fundi i skedarit

feof (<идентификатор файла>)

e cila kthen 1 kur të arrihet fundi i skedarit dhe 0 në të kundërt. Le të rishkruajmë programin për të lexuar numër arbitrar elementet e tipit double nga skedari hyrës.

fid = fopen ("my_file.dat", "rb"); % hap skedarin për lexim
nëse fid == -1
fund

B = 0; % inicializimi i ndryshores
cnt = 1; % inicializimi i numëruesit
ndërsa ~ feof (fid)% loop derisa të arrihet fundi i skedarit
= fread (fid, 1, "dyfish"); % lexuar një
% vlerë e dyfishtë (V përmban vlerën
% e artikullit, N - numri i artikujve të lexuar)
nëse N> 0% nëse elementi është lexuar me sukses, atëherë
B (cnt) = V; % formojnë një vektor rreshti nga vlerat V
cnt = cnt + 1; % rrit numëruesin me 1
fund
fund
disp (B); % shfaqja e rezultatit në ekran
fclose (fid); % mbyll skedarin

Ky program gjeneron në mënyrë dinamike një vektor rreshti ndërsa lexon elementë nga skedari hyrës. MatLab rrit automatikisht dimensionin e vektorëve nëse indeksi artikulli tjetër 1 më shumë se maksimumi. Sidoqoftë, një procedurë e tillë kërkon shumë kohë makinerie dhe programi fillon të funksionojë dukshëm më ngadalë sesa nëse dimensioni i vektorit B që në fillim është përcaktuar i barabartë me 5 elementë, për shembull, si ky

Duhet të theksohet gjithashtu se funksioni fread () është shkruar me dy parametra dalës V dhe N. Parametri i parë përmban vlerën e artikullit të lexuar, dhe i dyti përmban numrin e artikujve të lexuar. V në këtë rast vlera N do të jetë e barabartë me 1 sa herë që informacioni lexohet nga skedari saktë, dhe 0 kur lexohet karakteri i shërbimit EOF, që tregon fundin e skedarit. Kontrolli i mëposhtëm ju lejon të gjeneroni saktë një vektor të vlerave B.

Të dhënat e vargut gjithashtu mund të ruhen duke përdorur funksionet fwrite () dhe fread (). Për shembull, duke pasur parasysh vargun

str = "Përshëndetje MatLab";

fwrite (fid, str, "int16");

Lloji int16 përdoret këtu, pasi kur punoni me shkronja ruse, sistemi MatLab përdor një paraqitje prej dy bajtësh të secilit karakter. Më poshtë është një program për shkrimin dhe leximin e të dhënave të vargut duke përdorur funksionet fwrite () dhe fread ():

fid = fopen ("my_file.dat", "wb");
nëse fid == -1
gabim ("Skedari nuk hapet");
fund

str = "Përshëndetje MatLab"; % varg për të shkruar
fwrite (fid, str, "int16"); % shkruani në skedar
fclose (fid);

fid = fopen ("my_file.dat", "rb");
nëse fid == -1
gabim ("Skedari nuk hapet");
fund

B = ""; % inicializimi i vargut
cnt = 1;
ndërsa ~ feof (fid)
= fread (fid, 1, "int16 => char"); % e leximit të rrymës
% karakter dhe konvertim
% atë në char
nëse N> 0
B (cnt) = V;
cnt = cnt + 1;
fund
fund
disp (B); % shfaqja e linjës në ekran
fclose (fid);

Rezultati i ekzekutimit të programit do të duket si

Mësimi numër 19.

Puna me skedarë

    Hapja dhe mbyllja e skedarëve

    Operacionet e skedarëve binare

    Operacionet e skedarëve të formatuar

    Pozicionimi i skedarit

    Skedarët e specializuar

Skedarët janë objekte mjaft të zakonshme në sistemin MATLAB. Disa nga llojet e skedarëve janë diskutuar tashmë në kapitujt e mëparshëm. Ky mësim mbulon vetitë e skedarit që janë të pavarura nga lloji i tyre dhe zbatohen për çdo skedar.

Hapja dhe mbyllja e skedarëve

Skedari zakonisht disa koleksione të dhënash, të bashkuara me një emër. Lloji i skedarit zakonisht përcaktohet nga shtrirja e tij. Ne e konsiderojmë skedarin në tërësi, megjithëse fizikisht në disk mund të përfaqësohet nga disa zona - ata thonë se në këtë rast skedari është i fragmentuar.

Para se të përdorni ndonjë skedar, ai duhet të jetë hapur, dhe në fund të përdorimit - mbyllur. Shumë skedarë mund të hapen dhe të lexohen në të njëjtën kohë. Le të shqyrtojmë komandat për hapjen dhe mbylljen e skedarëve.

    Komanda e emrit të hapur, ku emri duhet të përmbajë një grup karakteresh ose një ndryshore simbolike, hap skedarë në varësi të analizës së parametrit të emrit dhe shtrirjes në emrin e emrit:

    • variabël - hap një grup të emërtuar me emër në Redaktuesin e Arrayit;

      Mat - hap një skedar, ruan variablat në një strukturë në zona e punës;

      Fig - e hap atë në Property Editor;

      M - hap një skedar m në redaktuesin-debugger;

      Mdl - hap modelin në Simulink;

      R - hap, nëse ka, një skedar m me të njëjtin emër;

      Html - hapet dokument HTML në shfletuesin e ndihmës.

Nëse skedarët me ekstension ekzistojnë në shtegun MATLAB, atëherë skedari që kthehet me komandën emri i cili hapet, nëse jo, atëherë skedari nga sistemi i skedarëve... Nëse skedari nuk ka një zgjerim emri, atëherë ai hapet nga programi, formati i skedarit të të cilit do të ishte zbuluar nga funksioni igpsiGname ") Si parazgjedhje, për të gjithë skedarët me mbaresa të ndryshme nga ato të listuara më sipër, thirret openother. Hapni thirrjet funksionet orepxxx, ku xxx është zgjerimi i skedarit. Përjashtimet janë variablat e hapësirës së punës, për të cilat thirret openvar dhe grafika, për të cilën thirret openim. Duke krijuar skedarë t të quajtur orepxxx, përdoruesit mund të modifikojnë trajtimin e skedarëve dhe të shtojnë shtesa të reja në listë. Mbyllni skedarët e hapur kur ndihmë për hapjen, ju duhet nga redaktorët e thirrur nga onxxx.

    Uigetfile (FILTERSPEC. Titulli). Hap një dialog me emrin Titulli dhe një filtër FILTERSPEC (për shembull, një grup qelizash që përmban shtesa skedarësh) dhe kthen skedarin e zgjedhur nga përdoruesi dhe rrugën drejt tij. Kthen FILENAME = 0 nëse skedari nuk ekziston ose nëse përdoruesi ka klikuar Cancel. = uigetfile (FILTERSPEC, Title. X. Y) vendos kutinë e dialogut në pikën X, Y (koordinatat në piksel).

Shembull:

Uigetfile ("*. M; *. Fig; *. Mat: *. Mdl". "Të gjithë skedarët e MATLAB (* .m, * .fig, * .mat. * .Mdl)": ...

    Uiputfile (FILTERSPEC. TITLE) e ruan skedarin në një dialog të kontrolluar nga përdoruesi. Parametrat janë të njëjtë si në funksion uigetfile.

    Komanda UI hap hap një dialog, dhe nëse përdoruesi ka zgjedhur një skedar me zgjerim i famshëm, e quan duke përdorur open, ose nëse emri i skedarit ka zgjerim i panjohur atëherë thirret uigetfile. Argumentet hyrëse në uiopen mund të jenë mat lab, load, figure, simullink, editor. Pa argumente hyrëse ose me një matlab të argumentit të hyrjes, kutia e dialogut ju kërkon të zgjidhni * .m, * .fig, * .mat,* .mdl (nëse Simulink është i instaluar), *. cdr (nëse është vendosur rrjedha e gjendjes), * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb (nëse është instaluar Workshop në kohë reale). Me argumentin e ngarkesës - * .mat. Me argumentin e figurës ofrohen * .fig; simul ink - * .mdl, redaktori - * .m, * .mdt * .cdr, * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb.

Shembull:

figurë e hapur.

    Komanda uiload hap një skedar në një dialog të kontrolluar nga përdoruesi duke përdorur komandën load.

Funksioni i importit UI fillon Import Wizard, duke importuar nga një skedar në dosjen ose buferin aktual Ndarja e Windows... Ai korrespondon me zgjedhjen e Import të dhënave nga menyja File ose zgjedhjen e Paste Special nga menyja Edit MATLAB.

    Ui import (FILENAME) - hap magjistarin e importit duke hapur FILENAME. Magjistari i importit tregon të dhëna për parapamje... Të dhënat dhe paraqitja e tyre si variabla MATLAB shfaqen në dritaren e shikimit. Të dhënat aktuale, teksti dhe titujt paraqiten ndryshe Variablat MATLAB... Për të dhënat ASCII, duhet të siguroheni që magjistari i importit të njeh kufizuesit e kolonave. Më vete, mund të njohë vetëm një skedë, hapësirë, presje ose pikëpresje. Ju duhet të klikoni në butonin Next dhe në dritaren tjetër ose të konfirmoni zgjedhjen e ndarësit të bërë nga Wizard, ose të zgjidhni Tjetër dhe të futni çdo ndarës.

    ui import ("-f i le") - së pari shfaq dialogun e përzgjedhjes së skedarit.

    ui import ("-pastespecial") - së pari shfaq përmbajtjen e kujtesës së Windows për shikim paraprak.

    S = ui import (...) ruan variablat që rezultojnë si fusha të strukturës S.

    Komanda uisave është një kursim i kontrolluar nga përdoruesi (komanda e ruajtjes përshkruhet në mësimin 2) me një dialog Windows.

    Funksioni Saveas - ruan një vizatim ose model Simulink në formatin e dëshiruar në një medium ruajtjeje ose në një pajisje të aktivizuar për printim.

    Funksioni Saveas (H, "FILENAME") - ruan të dhënat në përputhje me komandën grafika përshkruese H në skedarin FILENAME. Formati i skedarit përcaktohet nga zgjerimi i emrit FILENAME.

    Funksioni saveas (H. "EMRI FILE". "FORMAT") - bën të njëjtën gjë, por me parametrin FORMAT (formati specifikohet në të njëjtën mënyrë si shtesa e emrit të skedarit dhe mund të ndryshojë nga ai). FORMAT ka përparësi ndaj zgjerimit të emrit të skedarit. Parametrat e funksionit:

Shembuj:

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

Ekipi ose funksionin e fshirjes fshin një skedar ose objekt grafik.

    Fshi emrin e skedarit fshin skedarin dosje aktuale... Mund të përdoret *. Përdorimi i preferuar me një hyrje në formën e një funksioni fshirjeje ("skedar mw") kur emri i skedarit është një varg.

    fshij (H) fshin objekt grafik me përshkrues N. Nëse ky objekt është dritare, atëherë mbyllet paraprakisht.

    Funksioni mbyllje (H) mbyll vetëm dritaret grafike. Për të mbyllur skedarët, përdorni komandën f mbyllje.

Për të shkruar skedarë në disk, përdorni komandën ruaj, e cila përdoret në forma mjaft të dukshme:

ruaj

ruaj emrin e skedarit ruaj emrin e skedarit varl var2 ... ruaj ... opsionin ruaj ("emri i skedarit", ...)

Prandaj, komanda load përdoret për të lexuar skedarë nga disku:

ngarkesës

ngarkoni emrin e skedarit emri i skedarit të ngarkesës X Y Z

load filename -ascii load filename -mat

Në këto komanda, emri i skedarit specifikohet sipas rregullave të pranuara në sistemet operative të klasës MS-DOS. Këto komanda zakonisht dublikohen nga butonat e shiritit të veglave dhe shfletuesi i skedarëve.

Operacionet e skedarëve binare

Binar, ose binare, quhen skedarë, të dhënat e të cilave janë kodet e makinës. Operacionet bazë me kode të tilla janë renditur më poshtë.

    fopen (emri i skedarit, leja) - hap një skedar me emrin e skedarit dhe parametrin e specifikuar në leje dhe kthen identifikuesin fid me vlerën: 0 - lexuar nga tastiera (leja është vendosur në "r"); 1 - prodhimi i ekranit (leja është vendosur në "a"); 2 - shfaqja e një mesazhi gabimi (leja është vendosur në "a"); -1 - dështimi për të hapur skedarin me dalje mesazhet e mesazheve për llojin e gabimit. Fid shpesh përdoret si argument nga funksione të tjera dhe programe I/O. Emri i skedarit mund të përmbajë shtegun për në skedar.

Nëse skedari për t'u hapur për lexim nuk gjendet në drejtorinë aktuale, atëherë funksioni fopen kërkon skedarin në rrugën e specifikuar në MATLAB.

Parametri i lejes mund të marrë një nga vlerat bazë të mëposhtme (për të tjerët, shih sistemi i ndihmës):

    "r" - skedari i hapur për lexim (parazgjedhja);

    "r +" - skedar i hapur për lexim dhe shkrim;

    "w" - fshini përmbajtjen e një skedari ekzistues ose krijoni një të ri dhe hapeni atë për shkrim;

    "a" - krijoni dhe hapni një skedar të ri ose hapni një ekzistues përregjistrimet e bashkangjitura në fund të skedarit.

Shtimi i një "b" në këtë rresht (parazgjedhja) i thotë sistemit të hapë skedarin në modalitetin binar.

Shtimi i "t" në vend të b në këtë rresht, për shembull "rt", në sistemet operative që bëjnë dallimin midis skedarëve tekst dhe binar, udhëzon sistemin të hapë skedarin në modaliteti i tekstit... Për shembull, në të gjitha versionet e MATLAB për Windows / MS-DOS dhe VMS, nuk mund të hapni skedar teksti pa parametrin "rt". Kur futni skedarë duke përdorur fopen në modalitetin e tekstit, i gjithë transporti kthehet përpara se karakteri të hiqet linjë e re.

    Fopentfilename.permission, format) - Hap një skedar siç përshkruhet më sipër, duke kthyer një ID skedari dhe një mesazh. Për më tepër, vlera e parametrit të formatit ju lejon të përcaktoni me saktësi formati i numrave... Ekzistojnë 8 formate të mundshme, përshkrimi i të cilave mund të gjendet në sistemin e ndihmës. Në veçanti, vargu i formatit mund të jetë "native" (formati i kompjuterit në të cilin është instaluar sistemi), "vax", "sgau" (kompjuterët VAX dhe Cray), e kështu me radhë.

Disa thirrje për fread ose fwrite mund të anashkalojnë formatin numerik të specifikuar në thirrjen për hapje.

    fids = fopen Me të gjitha ") - kthen një varg vektori që përmban identifikuesit e të gjithë skedarëve të hapur, pa përfshirë rryma standarde Oh, 1 dhe 2. Numri i elementeve të vektorit është i barabartë me numrin hapur nga përdoruesi dosjet;

    Fopen (fid) - Kthen emrin e plotë të skedarit, vargun .permission dhe vargun e formatit. Nëse përdoren vlera të pavlefshme fid, vargjet boshe kthehen për të gjitha argumentet e daljes.

Komanda fclose mbyll skedarin. Ka opsionet e mëposhtme.

    Status = fclose (fid) - mbyll skedarin nëse është i hapur. Rikthen statusin e statusit të skedarit, të barabartë me 0 nëse mbyllja ishte e suksesshme, dhe -1 përndryshe. Argumenti fid është identifikuesi i lidhur me skedarin e hapur (shih funksionin fopen për një përshkrim më të detajuar);

    status = fclose ("të gjitha") mbyll të gjithë skedarët e hapur. Kthen 0 në sukses dhe -1 ndryshe.

Një shembull i hapjes dhe mbylljes së një skedari:

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

»Fclose (4)

ans =

    Fread (fid, madhësia, saktësia) - Lexon të dhëna binare nga një skedar të caktuar dhe i vendos në matricën A. Numërimi i argumenteve në dalje përmban numrin e elementeve të lexuara me sukses. Vlera fid është një numër i plotë i kthyer nga funksioni fopen; madhësia është një argument që specifikon sasinë e të dhënave për të lexuar. Nëse madhësia nuk është e specifikuar, f read lexon të dhënat deri në fund të skedarit.

Përdoren parametrat e mëposhtëm të madhësisë:

    n - lexoni n elemente në një vektor kolone;

    Lexon aq elementë sa nevojiten për të mbushur matricën thp.

Mbushja bëhet me kolona. Nëse ka pak elementë në skedar, atëherë matrica është e mbushur me zero. Nëse leximi arrin në fund të skedarit pa mbushur matricën e madhësisë së kërkuar, atëherë matrica është e mbushur me zero. Nëse ndodh një gabim, leximi ndalon në vlerën e fundit të lexuar. Parametri i saktësisë është një varg që përcakton saktësinë numerike të vlerave të leximit, ai kontrollon numrin e biteve të lexuara për secilën vlerë dhe i interpreton këto bit si një numër i plotë, pikë lëvizëse ose si karakter.

    Fread (fid, size.precision, skip) - Përfshin një argument arbitrar kapërcimi që specifikon numrin e bajteve që duhen kapërcyer pas çdo leximi. Kjo mund të jetë e dobishme kur nxjerrni të dhëna në zona jo të afërta nga regjistrimet me gjatësi fikse. Nëse saktësia është në një format biti si "bitN 1 ose" ubitN ", përcaktohet vlera e kapërcimit ~ copa. Lista e gjerë vlerat e mundshme parametri i saktësisë mund të gjendet në sistemin e ndihmës MATLAB;

    count = fwrite (fid, A, saktësi) - shkruan elementet e matricës A në një skedar, duke i paraqitur ato me një saktësi të caktuar. Të dhënat shkruhen në skedarin kolonë për kolonë, dhe argumenti i daljes së numërimit përmban numrin e elementeve të shkruara me sukses. Vlera fid është një numër i plotë nga funksioni f open. Shton kthimet e transportit përpara fillimit të një linje të re;

    count = fwrite (fid.A, precision, skip) - bën të njëjtën gjë, por përfshin një argument arbitrar skip që specifikon numrin e bajteve që duhen kapërcyer përpara çdo shkrimi. Kjo është e dobishme kur futni të dhëna në zona jo të lidhura në regjistrimet me gjatësi fikse. Nëse saktësia është në një format bit si "bitN" ose "ubitN", vlera e kapërcimit specifikohet në bit.

Shembuj:

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

Fid =

»A = magji (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)

Numërimi =

»Statusi = fclose (3)

Statusi =

»Fid

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

Fid =

"= Fread (3.)

30

39

48

1

10

19

28

38

47

7

9

18

27

29

46

6

8

17

26

35

37

5

14

16

25

34

36

45

13

15

24

33

42

44

4

21

23

32

41

43

3

12

22

31

40

49

2

11

20

numëro =

Operacionet e skedarëve të formatuar

Skedarët që përmbajnë të dhëna të formatuara quhen skedarë të formatuar. Më poshtë janë funksionet që përdoren për të punuar me skedarë të tillë.

    Line = fgetl (fid) - Kthen një varg nga skedar me identifikues fid me karakterin e fundit të rreshtit të hequr. Nëse fgetl zbulon fundin e skedarit, ai kthen -1 (shiko hapjen për më shumë pershkrim i detajuar fid);

    Line = f merr (fid) - Kthen rreshtin nga skedari me identifikuesin fid pa hequr karakterin e fundit të rreshtit. Nëse fgets zbulon fundin e skedarit, ai kthen -1;

    Line = fgets (fid.nchar) - Kthen jo më shumë se nchar e karaktereve të para të rreshtit. Pas përfundimit të rreshtit ose përfundimit të dosjes, nr karaktere shtesë nuk lexohen (shih shembuj për funksionin fscanf);

    Count = fprintf (fid.format, A ....) - formaton të dhënat që gjenden në pjesën reale të matricës A, nën kontrollin e vargut të formatit dhe i shkruan ato në një skedar me identifikuesin fid. Funksioni fprintf kthen numrin e bajteve të shkruara. Vlera fid është një numër i plotë i kthyer nga funksioni fopen.

Nëse e hiqni identifikuesin fid në listën e argumenteve të funksionit fprintf, atëherë dalja do të printohet në ekran, ashtu si kur përdorni daljen standarde (fid = l).

    fprintf (format, A ....) - kryhet shkrimi në pajisje standarde- ekran (por jo në skedar). Vargu i formatit përcakton sistemin e numrave, shtrirjen, shifra të rëndësishme, gjerësia e fushës dhe atributet e tjera të formatit të daljes. Mund të përmbajë shkronja të rregullta të alfabetit së bashku me kualifikues, karaktere rreshtimi, etj.

Tabela 19.1. Karaktere të veçanta në vargjet e formatit

Simboli

Përshkrim

\ n

Linja e re

\ t

Skeda horizontale

\ b

Backspace një karakter

\ r

Kthim ngarkese

\ f

Faqe e re

\\

Vija e prapme

\"ose "

Citim i vetëm

%%

Përqindje

Funksioni fprintf sillet si funksioni fprintf O ekuivalent ANSI C, me disa përjashtime dhe shtesa. Tabela 19.1 janë përshkruar Simbole të veçanta gjetur në vargun e formatit... Për të shfaqur të dhënat numerike ose të karaktereve në një varg formati, përdorni specifikuesit, të listuara në tabelë. 19.2.

Tabela 19.2. Specifikimi i formatit të daljes

Specifikimi

Përshkrim

% d Sistemi dhjetor emërtimet (me shenjë)
*Me Personazh i vetëm

% e

Shënimi eksponencial i numrave duke përdorur "e" në pjesën e poshtme regjistrohuni, për shembull 3.1415e + 00

Shënimi eksponencial i numrave duke përdorur "E" në krye Regjistrohu, për shembull 3.1415Е + 00

% f

Sistemi i shënimeve me pikë fikse

% g

Më kompakte prej% e dhe% f. Zerat pasuese nuk shfaqen

% G

Njësoj si% d, por përdor shkronja të mëdha për "E"

%O

Shënim oktal (i panënshkruar)

% s

Varg karakteresh

% u

Shënim dhjetor (i panënshkruar)

% x


Shënim heksadecimal duke përdorur simbole shkronja të vogla("A" ... "f")

% X

Shënimi heksadecimal duke përdorur shkronja të mëdha ("A" ... "F")

Karaktere shtesë mund të futen midis shenjës së përqindjes dhe shkronjës në specifikues. Kuptimi i tyre shpjegohet në tabelë. 19.3.

Tabela 19.3. Opsionet e specifikuesit të formatit

Simboli

Përshkrim

Shembull

Shenja minus" (-)

Argumente të konvertuara me justifikim majtas

% -5.2d

Shenja plus (+)

Printoni gjithmonë një shenjë numerike (+ ose -)

% + 5,2 ditë

Zero (0)

Mbushje me zero në vend të hapësirave

% 05.2d

Numrat

Përcakton numrin minimal të karaktereve që do të printohen

% 6f

Shifrat (pas pikës)

Numri pas pikës përcakton numrin e karaktereve të printuaranë të djathtë të pikës dhjetore

% 6.2f

    A = fscanf (fid, format) - lexon të gjitha të dhënat nga skedari me identifikuesin, fid, e konverton atë sipas vlerës së parametrit të formatit dhe e kthen atë si matricë A. Vlera e identifikuesit fid është një numër i plotë i kthyer nga funksioni fopen. Parametri i formatit është një varg që specifikon formatin e të dhënave që do të lexohen;

    Fscanf (fid.format, madhësia) - Lexon sasinë e të dhënave të specifikuara nga parametri i madhësisë, e konverton atë sipas parametrit të formatit dhe kthen numërimin, së bashku me numrin e elementeve të lexuara me sukses. Parametri i madhësisë është një argument arbitrar që specifikon sasinë e të dhënave për t'u lexuar. Vlerat e mëposhtme janë të vlefshme:

    • inf - leximi i elementeve deri në fund të skedarit dhe vendosja e tyre në një vektor kolone që përmban të njëjtin numër elementesh si në skedar;

      Lexon aq elementë sa nevojiten për të mbushur matricën e madhësisë thp. Mbushja bëhet me kolona. Vlera n (por jo!) Mund të marrë vlerën Inf.

Vargu i formatit përbëhet nga personazhe të zakonshëm dhe/ose specifikuesit. Specifikuesit tregojnë llojin e të dhënave të lexuara dhe përfshijnë karakterin %, opsioni i gjerësisë së fushës dhe karakteret e formatit. Karakteret e formatit të mundshëm janë renditur në tabelë. 19.4.

Tabela 19.4. Formati i karaktereve të përdorura nga funksioni fscanf

Simboli

Përshkrim

Një sekuencë personazhesh; parametri i gjerësisë së fushës përcakton numrin e karaktereve të lexuara

% d

dhjetore

% e,% f,% g

Numri i pikës lundruese

% i

Numër i plotë i nënshkruar

% o

Numri oktal i nënshkruar

% s

Një sekuencë karakteresh pa hapësirë ​​të bardhë

% u

Numri i plotë dhjetor i nënshkruar

% x

Numër i plotë heksadecimal i nënshkruar

[...]

Sekuenca e personazheve

Midis simbolit % dhe karakteri i formatit lejohet të fusë karakteret e mëposhtme:

    Një yll (*) do të thotë që vlera përkatëse nuk ka nevojë të ruhet në matricën e daljes;

    Një varg numrash specifikon gjerësia maksimale fusha;

    Shkronja tregon madhësinë e objektit që rezulton: h për një numër të plotë të shkurtër (për shembull,% n d), 1 për një numër të plotë të gjatë (për shembull,% ld) ose për një numër me pikë lundruese me saktësi të dyfishtë (për shembull, % lg ).

Shembuj:

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

Përgjigje =

3.142 0.000000

»Fgets (fid)

Përgjigje =

»Fclose (fid)

Përgjigje =

Pozicionimi i skedarit

Kur skedarët lexohen dhe shkruhen, ato përfaqësohen në mënyrë konvencionale si të dhëna lineare, si regjistrimi në një shirit magnetik të vazhdueshëm. Vendi nga i cili është leximi në këtë moment (ose pozicioni nga i cili regjistrimi në vazhdim), përcaktohet nga një speciale tregues. Skedarët e aksesit të njëpasnjëshëm skanohen në mënyrë rigoroze nga fillimi në fund, dhe në skedarët me akses të rastësishëm, treguesi mund të vendoset kudo nga ku shkruhen ose lexohen të dhënat e skedarit.

Kështu, treguesi siguron pozicionimin e skedarit. Një numër funksionesh pozicionimi janë në dispozicion:

    Eofstat = feof (fid) - Kontrollon nëse është arritur fundi i skedarit me identifikues fid. Kthen 1 nëse treguesi është në fund të skedarit, 0 përndryshe;

    Message = ferror (fid) - Rikthen informacionin rreth gabimit si varg mesazhi. Fid është një identifikues skedar i hapur(shih funksionin fopen për përshkrimin e tij të detajuar);

    Message = f error (f id, "e qartë") - fshin treguesin e gabimit për skedarin e specifikuar;

    Ferror (.) - Rikthen numrin e gabimit errnum operacioni i fundit I/O për skedarin e dhënë.

Nëse operacioni i fundit I/O i kryer në skedarin e specifikuar nga fid ishte i suksesshëm, mesazhi është një varg bosh dhe errnum është 0.

Një gabim jozero tregon se ka ndodhur një gabim në operacionin e fundit I/O. Parametri i mesazhit përmban një varg që përmban informacion në lidhje me natyrën e gabimit që ka ndodhur.

Shembull:

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

Fid =

»T = fread (3,)

Matrica e zbrazët: 4 me 0

»Ferror (3)

Përgjigje =

A është skedari i hapur për lexim? ... ... ...

    frewind (fid) - vendos treguesin e pozicionit në fillim të skedarit me identifikuesin fid;

    Statusi - fseekCfid, offset, origjina) - vendos treguesin në skedar me identifikuesin fid në pozicionin e specifikuar - me bajt, specifikuar sipas parametrave kompensuar në lidhje me origjinën.

Argumentet:

    Fid është identifikuesi i skedarit i kthyer nga funksioni fopen;

    kompensimi është një vlerë që interpretohet si më poshtë:

    • offset> 0 - ndryshon pozicionin e treguesit me bytes offset drejt fundit të skedarit;

      offset = 0 - nuk ndryshon pozicionin e treguesit;

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

    Origjina është një argument që merr vlerat e mëposhtme:

    • "bof ose -1 është fillimi i skedarit;

      "cof" ose 0 është pozicioni aktual i treguesit në skedar;

      "eof" ose 1 - fundi i skedarit;

    statusi është një argument në dalje. Vlera është 0 nëse operacioni fseek ishte i suksesshëm, dhe -1 përndryshe. Nëse ndodh një gabim, përdorni funksionin ferror për më shumë detaje;

    pozicion = ftel I (fid) - Rikthen pozicionin e treguesit për skedarin me fid, të marrë duke përdorur funksionin fopen. Argumenti i daljes së pozicionit është një numër i plotë jo negativ që specifikon pozicionin e treguesit, në bajt, në lidhje me fillimin e skedarit. Nëse kërkesa ishte e pasuksesshme, pozicioni është -1. Përdorni funksionin ferror për të shfaqur natyrën e gabimit.

Shembuj:

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

Fid =

"Count = fwrite (3, magjike (6))

Numri = 36

»FtelK3)

Përgjigje =

»Frewind (3): ftell (3)

Përgjigje =

"Fseek (3.12.0); ftell (3)

ans =

»Feof (3)

Përgjigje =

»Fmbylle (3)

Përgjigje =

    S = sprintf (format, A, ...) - formaton të dhënat në matricën A në formatin e specifikuar nga parametri i formatit dhe krijon një variabël vargu s prej tyre;

    SprintfCformat, A ....) - i ngjashëm me funksionin e përshkruar më parë, por gjithashtu kthen një varg gabimi errmsg nëse ka ndodhur një gabim, ose një varg bosh përndryshe. Vargu i formatit përcakton sistemin e numrave, shtrirjen, shifrat domethënëse, gjerësinë e fushës dhe atributet e tjera të formatit të daljes. Mund të përmbajë karaktere të rregullta së bashku me specifikuesit, karakteret e shtrirjes, e kështu me radhë.Funksioni fprintf sillet si funksioni analog ANSI C fprintf 0, me disa përjashtime dhe shtesa.

Shembuj:

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

ans =

0.91144

»SprintfC "% s","Hej")

ans =

Hej

Funksioni sscanf është i ngjashëm me funksionin fscanf, përveç që lexon të dhëna nga një ndryshore simbolike MATLAB dhe jo nga një skedar.

    А = sscanf (s, format) - lexon të dhënat nga ndryshorja simbolike s, i konverton ato sipas vlerës së formatit dhe në bazë të këtyre të dhënave krijon matricën A. Parametri i formatit përcakton formatin e të dhënave që do të lexohen;

    A = sscanf (s, formati, madhësia) - lexon sasinë e të dhënave të specifikuara nga parametri i madhësisë dhe e konverton atë sipas vargut të formatit. Parametri i madhësisë është një argument që specifikon sasinë e të dhënave për t'u lexuar. Vlerat e mëposhtme janë të vlefshme:

    • n - leximi i n elementeve në një vektor kolone;

      inf - leximi i elementeve deri në fund të një ndryshoreje simbolike dhe vendosja e tyre në një vektor kolone që përmban të njëjtin numër elementesh si në një variabël vargu;

      Lexon aq elementë sa nevojiten për të mbushur matricën e madhësisë thp. Mbushja bëhet me kolona. Sasia n (por jo!) Mund të marrë vlerën Inf.

    Sscanf (...) - lexon të dhënat nga ndryshorja e karakterit s, i konverton ato sipas vlerës së formatit dhe e kthen në matricën A. Parametri count është një output.argument që kthen numrin e elementeve të lexuara me sukses; errmsg është një argument dalës që kthen një varg gabimi nëse ka ndodhur një gabim dhe një varg bosh përndryshe. Nextindex është një argument dalës që përmban një numër një më shumë se numrin e karaktereve në s.

Vargu i formatit përbëhet nga karaktere dhe specifikues të zakonshëm. Specifikuesit tregojnë llojin e të dhënave dhe përfshijnë karakterin %, opsioni i gjerësisë së fushës dhe karakteret e formatit. Shpjegimet mund të gjenden në përshkrimin e funksionit fscanf.

Shembull:

"S =" 4.83 3.16 22 45 ";

"= Sscanf (s."% F ")

A =

4.8300 - 3.1600

22.0000

45.0000

Gabim =

tjetër =

Skedarët e specializuar

Funksionet e mëposhtme i referohen disa skedarë të specializuar:

    M = dlmread (emri i skedarit, kufizuesi) - Lexon të dhënat nga emri i skedarit të kufizuar me ASCII, duke përdorur përcaktuesin ndarës, në një grup M. Përdorni "\ t" i për të specifikuar një ndarës të skedave;

    M = dlmreadCfilename.delimiter, gs) - lexon të dhënat nga emri i skedarit me një ndarës ASCII, duke përdorur përcaktuesin ndarës, në një grup M, duke filluar nga kompensimi r (nga rreshtat) dhe c (sipas kolonave). Parametrat r dhe c numërohen duke filluar nga zero, në mënyrë që r = 0, c = 0 t'i përgjigjet vlerës së parë në skedar;

    M = dlmreadCfilename, deli mi ten, r, c, range) - Importon një gamë të indeksuar ose të emërtuar të të dhënave të kufizuara në formatin ASCII. Për të përdorur një varg qelizash, duhet të përcaktoni parametrin e diapazonit si varg = [TopString. Kolona e majtë. BottomRow, RightColumn].

Argumentet për funksionin dlmread janë si më poshtë:

    Kufizuesi është një karakter që ndan elementë individualë të matricës në një tabelë ASCII;

    (,) - ndarës i paracaktuar;

    R, c - qeliza e tabelës nga e cila janë marrë elementët e matricës, që korrespondon me elementët në këndin e sipërm të majtë të tabelës;

    vargu është një vektor që përcakton gamën e qelizave në tabelë.

Komanda dlmwrite konverton një matricë MATLAB në një skedar të kufizuar me ASCII të lexueshëm nga programet e fletëllogaritjes:

    Dl mwri te (f i 1 ename. A. delimiter) - Shkruan matricën A në qelizën lart majtas të tabelës së emrit të skedarit, duke përdorur kufizuesin për të ndarë elementët e matricës. Përdorni "U" për të krijuar një skedar të kufizuar me skeda. Të gjithë elementët me vlerë 0 janë hequr. Për shembull, grupi do të shfaqet në skedar si "1., 2" (nëse ndarësi është presje):

    dlmwrite (emri i skedarit, A, delimiter, r, c) - shkruan matricën A në emrin e skedarit, duke filluar nga vendi i specifikuar nga r dhe c, duke përdorur ndarësin;

    info = imfinfo (filename.fmt) - kthen një strukturë, fushat e së cilës përmbajnë informacion në lidhje me imazhin në skedarin grafik. Argumenti i emrit të skedarit është një varg që specifikon emrin e skedarit grafik, fmt është një varg që specifikon formatin e skedarit. Skedari duhet të jetë në drejtorinë aktuale ose në drejtorinë e specifikuar në shtegun MATLAB. Nëse imflnfo nuk mund të gjejë një skedar me emrin filename, ai kërkon një skedar me emrin filename.fmt.

Tabela 19.5 tregon vlerat e mundshme për argumentin fmt.

Tabela 19.5. Formatet grafike të mbështetura dhe emërtimet e tyre

Nëse emri i skedarit është një skedar TIFF ose HDF që përmban më shumë se një imazh, atëherë 1 nf o është një grup strukturash me një element të veçantë (d.m.th., me një strukturë individuale) për çdo imazh në skedar. Për shembull, informacioni (3) do të përmbajë informacion për imazhin e tretë në skedar. Shumë nga fushat në informacion varen nga skedari specifik dhe formati i tij. Megjithatë, nëntë fushat e para janë gjithmonë të njëjta. Tabela 19.6 rendit këto fusha dhe përshkruan kuptimet e tyre.

Tabela 19.6. Fushat e strukturës së informacionit dhe kuptimet e tyre

Fusha Kuptimi
Emri i skedarit Një varg që përmban emrin e skedarit; nëse skedari nuk është në drejtorinë aktuale, rreshti përmban shtegun e plotë të skedarit
FileModDate Një varg që përmban datën kur skedari është modifikuar për herë të fundit
Madhësia e skedarit Një numër i plotë që tregon madhësinë e skedarit në bajt
Formati Një varg që përmban formatin e skedarit të specifikuar nga parametri fmt; për skedarët JPEG dhe TIFF, kthehet një vlerë me tre karaktere
FormatVersion Një varg ose numër që përshkruan versionin e formatit
Gjerësia Një numër i plotë që tregon gjerësinë e imazhit në pixel
Lartësia Një numër i plotë që tregon lartësinë e imazhit në pixel
Bit Thellësia Një numër i plotë që tregon numrin e biteve për pixel
Lloji i Ngjyrave Një varg që përshkruan llojin e imazhit: "truecolor" për një imazh RGB, "gri" për një imazh në shkallë gri ose "i indeksuar" për një imazh me ngjyra të indeksuar

    Info = imfinfo (emri i skedarit) - përpiqet të përcaktojë formatin e skedarit sipas përmbajtjes. Shembull:

»Info = irrifinfo (" С: \ ekspozitë \ Internet.bmр ")

Informacion =

Emri i skedarit: "C: \ Ekspozita \ Internet.bmr"

Madhësia e skedarit: 481078

Formati: "bmp"

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

ose një imazh realcolor (RGB) i klasës uint8, komanda imwrite shkruan vlerat aktuale të grupit në një skedar. Nëse A është e klasës së dyfishtë, komanda imwrite anulon vlerat në grup përpara se të shkruajë duke përdorur konvertimin uint8 (round (255 * A)). Ky operacion konverton numrat me pikë lundruese në një gamë në numra të plotë 8-bit në një interval. Vlerat e vlefshme për ftnt janë të njëjta si për komandën imfinfo;

    imwrite (X, harta, emri i skedarit, fmt) - shkruan imazhin e indeksuar të vendosur në grupin X dhe paletën përkatëse të ngjyrave tar në emrin e skedarit. Nëse X përmban një imazh uint8, komanda imwrite shkruan vlerat aktuale të grupit në një skedar. Nëse X është dyfish, komanda imwrite anulon vlerat në grup përpara se të shkruani duke përdorur konvertimin uintS (X-l). Paleta e katranit duhet të jetë e klasës së dyfishtë; Funksioni imwrite anulon vlerat tar duke përdorur konvertimin uint8 (round (255 * mar));

    imwrite (.... emri i skedarit) - Shkruan imazhin në emrin e skedarit në formatin e specifikuar nga zgjerimi i skedarit. Shtesa mund të jetë një nga vlerat e vlefshme për parametrin fmt;

    imwrite (.... Parametri, Vlera ....) përcakton parametrat që kontrollojnë vetitë e ndryshme të skedarit dalës. Opsionet përdoren për skedarët HDF, JPEG dhe TIFF;

    M = wklread (emri i skedarit) - Lexon tabelën Lotusl23 (WK1) në matricën M;

    М = wklread (emri i skedarit.r.c) - lexon të dhënat duke filluar nga qeliza e specifikuar nga vlerat (r, s). Parametrat r dhe c janë të bazuara në zero, kështu që r = 0, c = 0 përcaktojnë qelizën e parë në skedar;

    M = wklread (emri i skedarit, r, c, diapazoni) - Lexon gamën e vlerave të specifikuara sipas diapazonit, ku diapazoni mund të jetë në një nga format e mëposhtme:

    • një vektor me katër elementë që përcakton një varg qelizash në formatin [larja_lartë. kolona_majtë, vija_fundore, kolona_djathtas];

      një varg qelizash të përcaktuara nga një varg, për shembull "A1 ... C5";

      një emër vargu, i specifikuar si varg, si p.sh. "Sales".

    wklwrite (emri i skedarit.M) - Shkruan vlerat e matricës M në emrin e skedarit të tabelës Lotus 123 WK1;

    wklwrite (emri i skedarit, M, r, c) - shkruan të dhëna duke filluar nga qeliza e specifikuar nga vlerat (r, s). Parametrat r dhe c janë të bazuara në zero, kështu që r = 0, c = 0 përcakton qelizën e parë në tabelë.

Tabela 19.7 tregon formatet e imazhit të disponueshëm për lexim nga funksioni imread. Listat e parametrave dhe vlerat e tyre të mundshme për funksionin imwrite përmbahen në tabelë. 19.8.

Duhet të theksohet se shumica e funksioneve të diskutuara më sipër përdoren rrallë nga përdoruesit. Por ato përdoren gjerësisht për qëllime sistemike dhe janë me interes të madh për specialistët.

Tabela 19.7. Formatet e skedarëve dhe përshkrimi i shkurtër i tyre

Formati Variantet
PKM Imazhe të pakompresuara 1-bit, 4-bit, 8-bit dhe 24-bit; Imazhe të ngjeshura RLE 4-bit dhe 8-bit
HDF Bitmap 8-bit, me ose pa një gamë ngjyrash; Bitmap 24-bit
Jpeg Çdo imazh JPEG; Imazhet JPEG me disa shtesa të përdorura zakonisht
PCX Imazhet 1-bit, 8-bit dhe 24-bit
Tiff Çdo imazh TIFF, duke përfshirë! Imazhe 1-bit, 8-bit dhe 24-bit me kompresim pakbit; Imazhe 1-bit me kompresim CCITT
XWD Zpixmaps 1-bit dhe 8-bit; XYBitmaps; XYPixmaps 1-bit

Tabela 19.8. Parametrat e përdorur gjatë shkrimit të skedarëve grafikë

Parametri Kuptimi Vlera e paracaktuar
Opsione për skedarët HDF
"ngjeshje" Një nga vlerat e mëposhtme: "asnjë", Vie "," jpeg " "rle"
"Cilësi" Një numër midis 0 dhe 100; parametri mbështetet për "Compression" = "jpeg"; sa më i madh të jetë numri, aq më i lartë është cilësia e skedarit (më pak shtrembërim i skedarit gjatë kompresimit) dhe aq më e madhe është madhësia e tij 75
"WriteMode" Një nga vlerat e mëposhtme: "overwrite", "append" "mbishkruaj"
Opsione për skedarët JPEG
"Cilësi" Një numër midis 0 dhe 100; sa më i madh të jetë numri, aq më i lartë është cilësia e skedarit (më pak shtrembërim gjatë ngjeshjes së skedarit) dhe aq më e madhe është madhësia e skedarit. 75
Opsione për skedarët TIFF
"ngjeshje" Një nga vlerat e mëposhtme: "asnjë", "packbits", "ccitt"; vlera "ccitt" është e vlefshme vetëm për imazhet binare (me dy ngjyra). "ccitt" për imazhe binare; "paketa" për të gjithë të tjerët
"Përshkrim" Çdo varg; vlera e fushës ImageDescription kthehet me komandën imfinfo Linjë bosh
"Rezoluta" Vlera skalare për rezolucionin në drejtimet x dhe y
72

Çfarë të re kemi mësuar?

Në këtë tutorial, mësuam:

    Hapni dhe mbyllni skedarët.

    Kryen operacione në skedarë binare dhe të formatuar.

    Poziciononi skedarin.

    Aplikoni skedarë të specializuar.

Arsyeja më e zakonshme për problemet me hapjen e skedarit MATLAB është thjesht mungesa e aplikacioneve të përshtatshme të instaluara në kompjuterin tuaj. Në këtë rast, mjafton të gjeni, shkarkoni dhe instaloni një aplikacion që shërben skedarë në formatin MATLAB - programe të tilla janë të disponueshme më poshtë.

Sistemi i kërkimit

Futni shtesën e skedarit

Ndihmë

të dhëna

Duhet të theksohet se disa të dhëna të koduara nga skedarët që kompjuteri ynë nuk i lexon ndonjëherë mund të shikohen në Notepad. Në këtë mënyrë ne lexojmë pjesë të tekstit ose numrave - ia vlen të kontrolloni nëse kjo metodë funksionon edhe për skedarët MATLAB.

Po sikur një aplikacion nga lista të jetë instaluar tashmë?

Shpesh, një aplikacion i instaluar duhet të lidhet automatikisht me një skedar MATLAB. Nëse kjo nuk ndodhi, atëherë skedari MATLAB mund të lidhet me sukses manualisht me aplikacionin e sapo instaluar. Mjafton të klikoni me të djathtën në skedarin MATLAB dhe më pas të zgjidhni opsionin "Zgjidh programin e paracaktuar" midis atyre të disponueshëm. Më pas duhet të zgjidhni opsionin "Shiko" dhe të gjeni aplikacionin tuaj të preferuar. Ndryshimet e paraqitura duhet të konfirmohen me opsionin "OK".

Programet që hapin skedarin MATLAB

Dritaret

Pse nuk mund ta hap skedarin tim MATLAB?

Problemet me skedarët MATLAB mund të kenë gjithashtu një sfond të ndryshëm. Ndonjëherë edhe instalimi i softuerit që shërben skedarët MATLAB në kompjuter nuk do ta zgjidhë problemin. Arsyeja e pamundësisë së hapjes, si dhe punës me skedarin MATLAB mund të jetë gjithashtu:

Lidhje të paqëndrueshme të skedarëve MATLAB në regjistrimet e regjistrit
- prishja e skedarit MATLAB që hapim
- Infeksioni i skedarit MATLAB (viruse)
- shumë pak burim kompjuterik
- shoferë të vjetëruar
- eliminimi i ekstensionit MATLAB nga regjistri i Windows
- instalimi jo i plotë i programit që shërben në shtesën MATLAB

Eliminimi i këtyre problemeve duhet të çojë në hapjen dhe punën pa pagesë me skedarët MATLAB. Në rast se kompjuteri ka ende probleme me skedarët, duhet të përdorni ndihmën e një eksperti që do të përcaktojë shkakun e saktë.

Kompjuteri im nuk po shfaq shtesat e skedarëve, çfarë duhet të bëj?

Në instalimet standarde të Windows, një përdorues kompjuteri nuk e sheh shtesën e skedarit MATLAB. Kjo mund të ndryshohet me sukses në cilësimet. Mjafton të futeni në "Paneli i Kontrollit" dhe të zgjidhni "Pamja dhe Personalizimi". Pastaj duhet të futni "Opsionet e dosjeve" dhe të hapni "Shiko". Në skedën "Shiko" ekziston një opsion "Fshih shtesat e llojeve të skedarëve të njohur" - duhet të zgjidhni këtë opsion dhe të konfirmoni funksionimin duke shtypur butonin "OK". Në këtë pikë, shtesat e të gjithë skedarëve, përfshirë MATLAB, duhet të shfaqen të renditura sipas emrit të skedarit.

). Ndër mjetet e përdorimit të përgjithshëm që përdoren në kimiometri, një vend të veçantë zë paketa MatLab. Popullariteti i tij është jashtëzakonisht i lartë. Kjo për shkak se MatLab është përpunim i fuqishëm dhe i gjithanshëm shumëdimensional i të dhënave. Vetë struktura e paketës e bën atë një mjet të përshtatshëm për kryerjen e llogaritjeve të matricës. Gama e problemeve që mund të hetohen duke përdorur MatLab përfshin: analizën e matricës, përpunimin e sinjalit dhe imazhit, rrjetet nervore dhe shumë të tjera. MatLab është një gjuhë me burim të hapur të nivelit të lartë që u mundëson përdoruesve me përvojë të kuptojnë algoritmet e programuara. Një gjuhë e thjeshtë programimi e integruar e bën të lehtë krijimin e algoritmeve tuaja. Për shumë vite të përdorimit të MatLab, janë krijuar një numër i madh funksionesh dhe ToolBox (pako mjetesh të specializuara). Më i popullarizuari është PLS ToolBox nga Eigenvector Research, Inc.

1. Informacion bazë

1.1. Ambient pune MatLab

Për të nisur programin, klikoni dy herë në ikonën. Mjedisi i punës i paraqitur në figurë do të hapet para jush.

Hapësira e punës MatLab 6.x paksa i ndryshëm nga mjedisi i punës i versioneve të mëparshme, ai ka një ndërfaqe më të përshtatshme për të hyrë në shumë elementë ndihmës

Hapësira e punës MatLab 6.x përmban elementët e mëposhtëm:

    një shirit veglash me butona dhe një listë rënëse;

    Dritarja me skeda Launch Pad dhe Hapësira e punës nga të cilat mund të aksesoni modulet e ndryshme të ToolBox dhe përmbajtjet e hapësirës së punës;

    dritare me skeda Historia e komandave dhe Drejtoria aktuale, i destinuar për shikimin dhe rikthimin e komandave të futura më parë, si dhe për vendosjen e drejtorisë aktuale;

    dritarja e komandës, e cila përmban prompt "dhe një kursor vertikal që vezullon;

    shiriti i statusit.

Nëse në një mjedis pune MatLab 6.x disa dritare të paraqitura në figurë mungojnë, më pas zgjidhni artikujt e duhur në menynë View: Dritarja e komandës, Historia e komandave, Drejtoria aktuale, Hapësira e punës, Hapësira e nisjes.

Komandat duhet të shtypen në dritaren e komandës. Ju nuk keni nevojë të shkruani "karakterin" për të treguar linjën e komandës. Për të parë zonën e punës, është i përshtatshëm të përdorni shiritat e lëvizjes ose butonat Home, End për të lëvizur majtas ose djathtas dhe PageUp, PageDown për të lëvizur lart ose poshtë. Nëse papritmas, pasi të keni lëvizur në zonën e punës të dritares së komandës, linja e komandës me kursorin vezullues u zhduk, thjesht shtypni Enter.

Është e rëndësishme të mbani mend se grupi i çdo komande ose shprehjeje duhet të përfundojë duke shtypur Enter, në mënyrë që MatLab të ekzekutojë këtë komandë ose të llogarisë shprehjen.

1.2. Llogaritjet më të thjeshta

Shkruani 1 + 2 në vijën e komandës dhe shtypni Enter. Si rezultat, sa vijon shfaqet në dritaren e komandës MatLab:

Oriz. 2 Paraqitja grafike e analizës së komponentit kryesor

Çfarë bëri MatLab? Së pari, ajo llogariti shumën 1 + 2, më pas shkruajti rezultatin në variablin special ans dhe printoi vlerën e tij, të barabartë me 3, në dritaren e komandës. Poshtë përgjigjes është një linjë komande me një kursor që vezullon, që tregon se MatLab është gati për llogaritjet e mëtejshme. Mund të shkruani shprehje të reja në vijën e komandës dhe të gjeni vlerat e tyre. Nëse duhet të vazhdoni të punoni me shprehjen e mëparshme, për shembull, llogaritni (1 + 2) /4.5, atëherë mënyra më e lehtë është të përdorni rezultatin tashmë ekzistues, i cili ruhet në variablin ans. Shkruani ans / 4.5 (një pikë përdoret kur futni thyesat dhjetore) dhe shtypni Hyni, doli qe

Oriz. 3 Paraqitja grafike e analizës së komponentit kryesor

1.3. Echo komandat

Çdo komandë në MatLab ka jehonë. Në shembullin e mësipërm, kjo është përgjigja ans = 0.6667. Shpesh jehona e bën të vështirë perceptimin e punës së programit dhe më pas mund të fiket. Për ta bërë këtë, komanda duhet të përfundojë me një pikëpresje. për shembull

Oriz. 4 Shembull i hyrjes në funksionin ScoresPCA

1.4. Ruajtja e mjedisit të punës. Skedarët MAT

Mënyra më e lehtë për të ruajtur të gjitha vlerat e variablave është të përdorni artikullin Save Workspase As në menynë File. Shfaqet kutia e dialogut Save Workspase Variables, në të cilën duhet të specifikoni drejtorinë dhe emrin e skedarit. Si parazgjedhje, sugjerohet që skedari të ruhet në nëndrejtorinë e punës së direktoriumit kryesor MatLab. Programi do të ruajë rezultatet e punës në një skedar me shtrirjen mat. Tani mund ta mbyllni MatLab. Në seancën tjetër, për të rivendosur vlerat e variablave, hapni këtë skedar të ruajtur duke përdorur nën-artikullin Open të menysë File. Tani të gjitha variablat e përcaktuara në seancën e mëparshme janë sërish të disponueshme. Ato mund të përdoren në komandat e futura rishtazi.

1.5. Revistë

MatLab ka aftësinë për të shkruar komanda dhe rezultate të ekzekutueshme në një skedar teksti (të mbajë një regjistër të punës), i cili më pas mund të lexohet ose printohet nga një redaktues teksti. Për të filluar regjistrimin, përdorni komandën ditar... Si argument komandues ditar duhet të specifikoni emrin e skedarit në të cilin do të ruhet regjistri i punës. Komandat e shtypura më tej dhe rezultatet e ekzekutimit të tyre do të shkruhen në këtë skedar, për shembull, një sekuencë komandash

kryen veprimet e mëposhtme:

    hap regjistrin në skedarin exampl-1.txt;

    kryen llogaritjet;

    ruan të gjitha variablat në skedarin MAT work-1.mat;

    ruan regjistrin në skedarin exampl-1.txt në nëndrejtorinë e punës së direktoriumit rrënjësor MatLab dhe mbyll MatLab;

Shikoni përmbajtjen e skedarit exampl-1.txt në një redaktues teksti. Skedari do të përmbajë tekstin e mëposhtëm:

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

Kurseni punën-1

1.6. Sistemi i ndihmës

Dritarja e ndihmës MatLab shfaqet pasi zgjidhni opsionin Help Window në menunë Help ose duke klikuar butonin e pyetjeve në shiritin e veglave. I njëjti veprim mund të kryhet duke shtypur komandën ndihmëwin... Për të shfaqur një dritare ndihme për seksione individuale, shkruani tema helpwin... Dritarja e ndihmës ju ofron të njëjtin informacion si komanda e ndihmës, por ndërfaqja me dritare ofron lidhje më të përshtatshme për temat e tjera të ndihmës. Duke përdorur adresën e faqes së internetit Math Works, mund të identifikoheni në serverin e firmës dhe të merrni informacionin më të fundit për pyetjet tuaja. Mund të njiheni me produktet e reja softuerike ose të gjeni një përgjigje për problemet tuaja në faqen e mbështetjes teknike.

2. Matricat

2.1. Skalarët, vektorët dhe matricat

Skalarët, vektorët dhe matricat mund të përdoren në MatLab. Për të futur një skalar, mjafton t'i caktoni vlerën e tij disa ndryshoreve, për shembull

Vini re se MatLab bën dallimin midis shkronjave të mëdha dhe të vogla, kështu që p dhe P janë variabla të ndryshëm. Për të futur vargje (vektorë ose matrica), elementet e tyre mbyllen në kllapa katrore. Pra, për të futur një vektor rreshti 1 × 3, përdorni komandën e mëposhtme, në të cilën elementët e rreshtit ndahen me hapësira ose presje.

Kur futni një vektor kolone, ndani artikujt me një pikëpresje. Për shembull,

Është i përshtatshëm për të futur matrica me madhësi të vogël direkt nga linja e komandës. Ndërsa shkruani, një matricë mund të mendohet si një vektor kolone, secili element i së cilës është një vektor rreshti.

ose një matricë mund të mendohet si një vektor rreshti, secili element i të cilit është një vektor kolone.

2.2. Aksesimi i elementeve

Elementet e matricës aksesohen duke përdorur dy indekse - numrat e rreshtave dhe kolonave, të mbyllura në kllapa, për shembull, komanda B (2,3) do të kthejë një element të rreshtit të dytë dhe kolonës së tretë të matricës B. Për të zgjedhur një kolonë ose rresht nga një matricë, përdorni numrin e kolonës ose rreshtit të matricës si një nga indekset dhe zëvendësoni indeksin tjetër me një dy pika. Për shembull, ne shkruajmë rreshtin e dytë të matricës A në vektorin z

Ju gjithashtu mund të nënvizoni blloqet e matricave duke përdorur një dy pika. Për shembull, zgjidhni nga matrica P bllokun e shënuar me ngjyrë

Nëse keni nevojë të shikoni variablat e mjedisit të punës, në vijën e komandës duhet të shkruani komandën kushs .

Mund të shihni që hapësira e punës përmban një skalar (p), katër matrica (A, B, P, P1) dhe një vektor rreshti (z).

2.3. Operacionet bazë të matricës

Kur përdorni operacionet e matricës, mbani mend se për mbledhje ose zbritje, matricat duhet të jenë të së njëjtës madhësi dhe kur shumëzohen, numri i kolonave në matricën e parë duhet të jetë i barabartë me numrin e rreshtave në matricën e dytë. Mbledhja dhe zbritja e matricave, si dhe numrave dhe vektorëve, kryhet duke përdorur shenjat plus dhe minus

dhe shumëzimi tregohet me një yll *. Prezantoni një matricë 3 × 2

Shumëzimi i një matrice me një numër kryhet gjithashtu duke përdorur një yll, dhe ju mund të shumëzoni me një numër si në të djathtë ashtu edhe në të majtë. Një matricë katrore ngrihet në një fuqi numër të plotë duke përdorur operatorin ^

Kontrolloni rezultatin tuaj duke shumëzuar matricën P me vetveten.

2.4. Krijimi i matricave të veçanta

Mbushja e një matrice drejtkëndore me zero bëhet nga funksioni i integruar zero

Matrica e identitetit krijohet duke përdorur funksionin syri

Një matricë e përbërë nga njësh formohet si rezultat i thirrjes së funksionit ato

MatLab ofron mundësinë për të mbushur matricat me numra të rastit. Rezultati i funksionit randiështë një matricë numrash të shpërndarë në mënyrë të barabartë ndërmjet zeros dhe njës, dhe funksioneve randn- matrica e numrave të shpërndarë sipas ligjit normal me zero mesatare dhe variancë njësi.

Funksioni diag formon një matricë diagonale nga një vektor duke renditur elementët në mënyrë diagonale.

2.5. Llogaritjet e matricës

MatLab përmban shumë funksione të ndryshme për të punuar me matrica. Kështu, për shembull, një matricë transpozohet duke përdorur një apostrof "

Matrica e anasjelltë gjendet duke përdorur funksionin inv për matricat katrore

3. Integrimi i MatLab dhe Excel

Integrimi i MatLab dhe Excel lejon përdoruesin e Excel të aksesojë funksione të shumta MatLab për përpunimin e të dhënave, llogaritjet e ndryshme dhe vizualizimin e rezultatit. Shtesa excllink.xla zbaton këtë përmirësim të Excel. Për komunikimin ndërmjet MatLab dhe Excel, përcaktohen funksione të veçanta.

3.1. Konfigurimi i Excel

Përpara se të konfiguroni Excel për të punuar së bashku me MatLab, duhet të siguroheni që Excel Link është përfshirë në versionin e instaluar të MatLab. Skedari shtesë excllink.xla duhet të gjendet në nëndirektorinë exclink të drejtorisë kryesore të MatLab ose në nëndrejtorinë e kutisë së veglave. Nisni Excel dhe zgjidhni Shtesat nga menyja e Veglave. Do të hapet një kuti dialogu që përmban informacione rreth shtesave të disponueshme aktualisht. Përdorni butonin Browse për të specifikuar shtegun për në skedarin excllink.xla. Linja shfaqet në listën e shtesave në kutinë e dialogut Excel Link 2.0 për përdorim me MatLab me vendosjen e flamurit. Klikoni OK, shtesa e kërkuar është shtuar në Excel.

Vini re se Excel tani ka një shirit veglash Excel Link që përmban tre butona: putmatrix, getmatrix, evalstring. Këta butona zbatojnë veprimet kryesore të kërkuara për zbatimin e marrëdhënies midis Excel dhe MatLab - shkëmbimi i të dhënave të matricës dhe ekzekutimi i komandave MatLab nga mjedisi Excel. Kur Excel riniset, shtesa excllink.xla lidhet automatikisht.

Puna e koordinuar e Excel dhe MatLab kërkon disa cilësime të tjera, të cilat pranohen në Excel si parazgjedhje (por mund të ndryshohen). Në menunë Tools, shkoni te Opsionet, hapet kutia e dialogut Opsionet. Zgjidhni skedën e Përgjithshme dhe sigurohuni që flamuri i stilit të referencës R1C1 është i fikur, d.m.th. qelizat numërohen A1, A2, etj. Në skedën Edit, duhet të vendoset zgjedhja Lëviz pas Enter.

3.2. Shkëmbimi i të dhënave midis MatLab dhe Excel

Filloni Excel, kontrolloni që të gjitha cilësimet e nevojshme janë bërë siç përshkruhet në seksionin e mëparshëm (MatLab duhet të jetë i mbyllur). Futni një matricë në qelizat A1 deri në C3, përdorni një pikë për të ndarë numrat dhjetorë në përputhje me kërkesat e Excel.

Zgjidhni të dhënat e qelizave në fletë dhe shtypni butonin putmatrix, shfaqet një dritare Excel me një paralajmërim se MatLab nuk po funksionon. Klikoni OK, prisni që MatLab të hapet.

Një kuti dialogu Excel shfaqet me një linjë hyrëse që synon të përcaktojë emrin e ndryshores së mjedisit të punës MatLab, në të cilin duhet të eksportohen të dhënat nga qelizat e zgjedhura të Excel. Futni, për shembull, M dhe mbyllni dritaren me butonin OK. Shkoni te dritarja e komandës MatLab dhe sigurohuni që një variabël M është krijuar në mjedisin e prodhimit, që përmban një grup tre-nga-tre:

Kryeni disa operacione në MatLab me matricën M, për shembull, kthejeni atë në të kundërt.

Thirrni inv për të përmbysur matricën, si çdo komandë tjetër MatLab, mund ta kryeni direkt nga Excel. Shtypja e butonit evalstring, i vendosur në panelin Excel Link, çon në shfaqjen e një kutie dialogu, në vijën hyrëse të së cilës duhet të shkruani komandën MatLab.

IM = inv (M).

Rezultati është i ngjashëm me atë të marrë gjatë ekzekutimit të komandës në mjedisin MatLab.

Kthehuni në Excel, bëni qelizën A5 aktuale dhe klikoni butonin getmatrix. Shfaqet një kuti dialogu me një linjë hyrëse që ju kërkon të vendosni emrin e ndryshores që do të importohet në Excel. Në këtë rast, kjo ndryshore është IM. Klikoni OK, qelizat A5 deri në A7 janë të mbushura me elementë të matricës së kundërt.

Pra, për të eksportuar një matricë në MatLab, duhet të zgjidhni qelizat e duhura të fletës Excel, dhe për import, mjafton të specifikoni një qelizë, e cila do të jetë elementi i sipërm majtas i grupit të importuar. Pjesa tjetër e elementeve do të shkruhen në qelizat e fletës sipas madhësisë së grupit, duke mbishkruar të dhënat që ato përmbajnë, kështu që duhet të keni kujdes kur importoni vargje.

Qasja e mësipërme është mënyra më e thjeshtë për të shkëmbyer informacion midis aplikacioneve - të dhënat origjinale përmbahen në Excel, më pas eksportohen në MatLab, përpunohen atje në një farë mënyre dhe rezultati importohet në Excel. Përdoruesi transferon të dhëna duke përdorur butonat në shiritin e veglave Excel Link. Informacioni mund të paraqitet në formën e një matrice, d.m.th. zona drejtkëndore e fletës së punës. Qelizat e renditura në një rresht ose kolonë eksportohen në vektorët e rreshtave dhe vektorët e kolonave të MatLab, përkatësisht. Importimi i vektorëve të rreshtave dhe vektorëve të kolonave në Excel funksionon në mënyrë të ngjashme.

4. Programimi

4.1. M-skedarët

Puna nga linja e komandës MatLab është e vështirë nëse duhet të futni shumë komanda dhe t'i ndryshoni ato shpesh. Mbajtja e një ditari me një urdhër ditar dhe ruajtja e ambientit të punës e bën punën pak më të lehtë. Mënyra më e përshtatshme për të ekzekutuar grupe komandash MatLab është përdorimi i skedarëve M, në të cilët mund të shkruani komanda, t'i ekzekutoni të gjitha menjëherë ose në pjesë, t'i ruani në një skedar dhe t'i përdorni më vonë. Redaktori i skedarëve M është menduar për të punuar me skedarët M. Me ndihmën e tij, ju mund të krijoni funksionet tuaja dhe t'i telefononi ato, duke përfshirë nga dritarja e komandës.

Hapni menynë File të dritares kryesore të MatLab dhe në artikullin New zgjidhni nën-artikullin M-file. Skedari i ri hapet në dritaren e redaktuesit të skedarit M, e cila është paraqitur në figurë.

Ekzistojnë dy lloje të skedarëve M në MatLab: skedari i programit ( Skript M-Files) që përmban një sekuencë komandash dhe funksionesh skedarësh ( Funksioni M-Files) që përshkruajnë funksionet e përcaktuara nga përdoruesi.

4.2. Program skedari

Shkruani komandat në redaktues që çojnë në ndërtimin e dy grafikëve në një dritare grafike

Tani ruani skedarin me emrin mydemo.m në nëndrejtorinë e punës së direktoriumit kryesor MatLab duke zgjedhur artikullin Ruaj si në menynë File të redaktuesit. Për të ekzekutuar të gjitha komandat që përmban skedari, zgjidhni artikullin Run në menynë Debug. Një dritare grafike do të shfaqet në ekran. Figura 1 që përmban grafikët e funksioneve.

Komandat e programit të skedarit dalin në dritaren e komandës. Për të shtypur daljen, përfundoni komandat me një pikëpresje. Nëse bëhet një gabim gjatë shtypjes dhe MatLab nuk mund ta njohë komandën, atëherë komandat ekzekutohen derisa të futet gabimisht, pas së cilës shfaqet një mesazh gabimi në dritaren e komandës.

Një veçori shumë e përshtatshme e ofruar nga redaktori i skedarit M është ekzekutimi i një pjese të komandave. Mbyllni dritaren e grafikës Figura 1... Zgjidhni me miun duke mbajtur butonin e majtë, ose me tastet e shigjetave duke mbajtur të shtypur Zhvendosja, katër komandat e para dhe ekzekutojini ato nga artikulli Tekst. Ju lutemi vini re se vetëm një grafik shfaqet në dritaren grafike, që korrespondon me komandat e ekzekutuara:. Mos harroni se për të ekzekutuar disa nga komandat, zgjidhni ato dhe shtypni tastin F9.

Blloqet individuale të skedarit M mund të pajisen me komente që anashkalohen gjatë ekzekutimit, por janë të përshtatshëm kur punoni me skedarin M. Komentet fillojnë me një shenjë përqindjeje dhe theksohen automatikisht me të gjelbër, për shembull:

Një skedar ekzistues M hapet duke përdorur artikullin Open të menysë File të mjedisit të punës ose redaktuesin e skedarit M.

4.3. Funksioni i skedarit

Skedar-programi i mësipërm është vetëm një sekuencë komandash MatLab, ai nuk ka argumente hyrëse dhe dalëse. Për të përdorur metoda numerike dhe kur programoni aplikacionet tuaja në MatLab, duhet të jeni në gjendje të kompozoni funksione skedari që kryejnë veprimet e nevojshme me argumente hyrëse dhe të ktheni rezultatin e veprimit në argumentet e daljes. Le të shohim disa shembuj të thjeshtë për t'ju ndihmuar të kuptoni se si të punoni me funksionet e skedarëve.

Përqendrimi përdoret shpesh në përpunimin paraprak të të dhënave të analizës së kimiometrisë me shumë variacione. Ka kuptim të shkruani një funksion skedari një herë, dhe më pas ta thërrisni atë kudo që është e nevojshme të përqendrohet. Hapni një skedar të ri në redaktuesin e skedarit M dhe shkruani

Fjala funksion në rreshtin e parë specifikon që ky skedar përmban një skedar funksioni. Rreshti i parë është titulli i funksionit, i cili përmban emrin e funksionit dhe listën e argumenteve hyrëse dhe dalëse. Në shembull, emri i funksionit është në qendër, një argument hyrës është X dhe një dalje është Xc. Pas titullit vijojnë komentet dhe më pas trupi i funksionit (në këtë shembull ai përbëhet nga dy rreshta), ku llogaritet vlera e tij. Është e rëndësishme që vlera e llogaritur të shkruhet në Xc. Sigurohuni që të përfshini një pikëpresje për të parandaluar shfaqjen e informacionit të panevojshëm në ekran. Tani ruani skedarin në drejtorinë tuaj të punës. Vini re se zgjedhja e artikullit Ruaj ose Ruaj si të menysë File sjell një kuti dialogu për ruajtjen e skedarit, fusha e emrit të skedarit tashmë përmban përqendrimin e emrit. Mos e ndryshoni atë, ruajeni skedarin e funksionit në një skedar me emrin e sugjeruar!

Tani funksioni i krijuar mund të përdoret në të njëjtën mënyrë si sinoni i integruar, cos dhe të tjerët. Funksionet e veta mund të thirren nga një skedar programi dhe nga një funksion tjetër skedari. Mundohuni të shkruani vetë një funksion skedari që do të shkallëzojë matricat, d.m.th. ndani secilën kolonë me devijimin standard për atë kolonë.

Ju mund të shkruani një skedar funksioni me disa argumente hyrëse, të cilat vendosen në një listë të ndarë me presje. Ju gjithashtu mund të krijoni funksione që kthejnë vlera të shumta. Për ta bërë këtë, argumentet e daljes shtohen të ndara me presje në listën e argumenteve të daljes dhe vetë lista mbyllet në kllapa katrore. Një shembull i mirë është një funksion që konverton një kohë në sekonda në orë, minuta dhe sekonda.

Kur thirrni funksione skedari me disa argumente dalëse, rezultati duhet të shkruhet në një vektor me gjatësinë përkatëse.

4.4 Krijimi i një orari

MatLab ka mundësi të shumta për grafikimin e vektorëve dhe matricave, si dhe për krijimin e komenteve dhe printimin e grafikëve. Le të përshkruajmë disa funksione të rëndësishme grafike.

Funksioni komplot ka forma të ndryshme të lidhura me parametrat hyrës, për shembull grafiku (y) krijon një grafik linear pjesë-pjesë të varësisë së elementeve y nga indekset e tyre. Nëse dy vektorë jepen si argumente, atëherë grafiku (x, y) do të vizatojë y kundrejt x. Për shembull, për të vizatuar funksionin sin nga 0 në 2π, bëni sa më poshtë

Programi ka ndërtuar një grafik varësie që shfaqet në dritare Figura 1

MatLab cakton automatikisht ngjyrën e vet për çdo grafik (përveç rasteve kur përdoruesi e bën atë), gjë që ju lejon të dalloni midis grupeve të të dhënave.

Ekipi prit ju lejon të shtoni kthesa në një grafik ekzistues. Funksioni nënplot ju lejon të shfaqni grafikët e shumtë në një dritare

4.5 Printimi i grafikëve

Artikulli Print në menynë File dhe komanda shtypur printoni grafikë MatLab. Menyja Print sjell një kuti dialogu që ju lejon të zgjidhni opsionet standarde të zakonshme të printimit. Ekipi shtypur siguron më shumë fleksibilitet në daljen e daljes dhe ju lejon të kontrolloni printimin nga skedarët M. Rezultati mund të dërgohet direkt në printerin e paracaktuar ose të ruhet në një skedar të caktuar.

5. Shembuj programesh

Ky seksion rendit algoritmet më të zakonshme të përdorura në analizën e të dhënave shumëdimensionale. Konsiderohen të dyja metodat më të thjeshta të transformimit të të dhënave, përqendrimit dhe shkallëzimit, si dhe algoritmet për analizën e të dhënave - PCA, PLS.

5.1. Përqendrimi dhe shkallëzimi

Analiza shpesh kërkon transformimin e të dhënave origjinale. Metodat më të përdorura të transformimit të të dhënave janë përqendrimi dhe shkallëzimi i çdo ndryshoreje sipas devijimit standard. Në kodin e funksionit për centrimin e matricës është dhënë. Prandaj, vetëm kodi i funksionit është paraqitur më poshtë, i cili peshore të dhëna. Ju lutemi vini re se matrica origjinale duhet të jetë në qendër

funksioni Xs = shkallëzim (X)
% shkallëzim: matrica e daljes është Xs
% matrica X duhet të jetë në qendër

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

% fundi i shkallëzimit

5.2. SVD / PCA

Metoda më e popullarizuar e ngjeshjes së të dhënave në analizën multivariate është analiza e komponentit kryesor (PCA). Matematikisht, PCA është një dekompozim i matricës origjinale X, d.m.th. paraqitjen e tij si produkt i dy matricave T dhe P

X = TP t + E

Matricë T quhet matrica e rezultateve, matrica quhet matrica e mbetur.

Mënyra më e thjeshtë për të gjetur matricat T dhe P- përdorni zbërthimin e SVD nëpërmjet një funksioni standard MatLab të quajtur svd .

funksion = pcasvd (X)

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

% fundi i pcasvd

5.3 PCA / NIPALS

Për të ndërtuar llogaritë dhe ngarkesat PCA, përdoret algoritmi i përsëritur NIPALS, i cili llogarit një komponent në çdo hap. Matrica fillestare së pari X transformohet (të paktën - në qendër; shih) dhe shndërrohet në matricë E 0 , a= 0. Pastaj zbatohet algoritmi i mëposhtëm.

t 2. fq t = t t Ea / t t t 3. fq = fq / (fq t fq) ½ 4. t = Ea fq / fq t fq 5. Kontrolloni konvergjencën, nëse jo, atëherë shkoni te 2

Pas llogaritjes së radhës ( a th) komponentët, supozojmë ta=t dhe fqa=fq E a+1 = Eat fq aa+1.

Kodi i algoritmit NIPALS mund të shkruhet nga vetë lexuesit; në këtë tutorial, autorët japin versionin e tyre. Kur llogaritni PCA, mund të futni numrin e komponentëve kryesorë (numri i ndryshueshëmPC). Nëse nuk e dini se sa komponentë nevojiten, duhet të shkruani = pcanipals (X) në vijën e komandës dhe më pas programi do të vendosë numrin e komponentëve të barabartë me dimensionet më të vogla të matricës origjinale. X.

funksioni = pcanipals (X, numriPC)

% llogaritja e numrit të komponentëve
= madhësia (X); P =; T =;

Nëse e majta (numri PC)> 0
pc = numriPC (1);
elseif (gjatësia (numri PC) == 0) & X_r< X_c
pc = X_r;
tjetër
pc = X_c;
fundi;

për k = 1: pc
P1 = rand (X_c, 1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)) "; P1 = P1 / normë (P1); T1 = X * P1; d = T1" * T1;

Ndërsa d - d0> 0,0001;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / normë (P1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / normë (P1); T1 = X * P1; d = T1 "* T1;
fund

X = X - T1 * P1; P = mace (1, P, P1"); T =;
fund

Si të llogarisni PCA duke përdorur shtesën Chemometrics mbulohet në tutorial

5.4 PLS1

Metoda më e popullarizuar për kalibrimin me shumë variacione është metoda e projeksionit latent (PLS). Kjo metodë kryen një zbërthim të njëkohshëm të matricës parashikuese X dhe matricat e përgjigjes Y:

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

Projeksioni është ndërtuar në mënyrë konsistente - në mënyrë që të maksimizohet korrelacioni midis vektorëve përkatës X-llogaritë ta dhe Y-llogaritë ua... Nëse blloku i të dhënave Y përfshin përgjigje të shumta (d.m.th. K> 1), mund të ndërtoni dy projeksione të të dhënave fillestare - PLS1 dhe PLS2. Në rastin e parë, për secilën nga përgjigjet y k ndërtohet nënhapësira e saj e projeksionit. Në të njëjtën kohë, llogaritë T (U) dhe ngarkesës P (W, P) varet nga cila përgjigje përdoret. Kjo qasje quhet PLS1. Për metodën PLS2, ndërtohet vetëm një hapësirë ​​projeksioni, e cila është e zakonshme për të gjitha përgjigjet.

Një përshkrim i detajuar i metodës PLS është dhënë në këtë libër.Për të ndërtuar llogaritë dhe ngarkesat PLS1, përdoret një algoritëm i përsëritur. Matricat fillestare së pari X dhe Y qendër

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

dhe ato kthehen në një matricë E 0 dhe vektor f 0 , a= 0. Pastaj ndaj tyre zbatohet algoritmi i mëposhtëm

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

Pas llogaritjes së radhës ( a th) komponentët, supozojmë ta=t dhe fqa=fq... Për të marrë komponentin tjetër, duhet të llogaritni mbetjet E a+1 = Eat fq t dhe aplikoni të njëjtin algoritëm për to, duke zëvendësuar indeksin aa+1.

Këtu është kodi për këtë algoritëm, marrë nga libri

funksion = pls (x, y)
% PLS: llogarit një komponent PLS.
% Vektorët e daljes janë w, t, u, q dhe p.
%
% Zgjidhni një vektor nga y si vektor fillestar u.

u = y (:, 1);

% Kriteri i konvergjencës është vendosur shumë i lartë.
kri = 100;

% Komandat nga këtu në fund përsëriten deri në konvergjencë.
ndërsa (kri> 1e - 10)

% Çdo vektor fillestar u ruhet si u vjetër.
uold = u; w = (u "* x)"; w = w / normë (w);
t = x * w; q = (t "* y)" / (t "* t);
u = y * q / (q "* q);

% Kriteri i konvergjencës është norma e u-uold pjesëtuar me normën e u.
kri = normë (uold - u) / normë (u);
fundi;

% Pas konvergjencës, njehsoni p.
p = (t "* x)" / (t "* t);

% Fundi i pls

Rreth llogaritjes së PLS1 me një shtesë KimiometriaShtoje ne të përshkruara në manualin Metodat e projektimit në sistemin Excel.

5.5 PLS2

Për PLS2, algoritmi është si më poshtë. Matricat fillestare së pari X dhe Y transformohen (të paktën - në qendër; shih), dhe ato kthehen në matrica E 0 dhe F 0 , a= 0. Pastaj ndaj tyre zbatohet algoritmi i mëposhtëm.

1. Zgjidhni vektorin fillestar 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. Kontrolloni konvergjencën, nëse jo, atëherë shkoni te 2 8. fq t = t t Ea / t t t

Pas llogaritjes së radhës ( a-th) Komponentët PLS2 duhet të vendosen: ta=t, fqa=p, wa=w, ua=u dhe q a = q... Për të marrë komponentin tjetër, duhet të llogaritni mbetjet E a+1 = Eat fq t dhe Fa +1 = F atq t dhe aplikoni të njëjtin algoritëm për to, duke zëvendësuar indeksin aa+1.

Këtu është kodi, i cili gjithashtu është huazuar nga libri.

funksion = plsr (x, y, a)
% PLS: llogarit një komponent PLS.
% Matricat e daljes janë W, T, U, Q dhe P.
% B përmban koeficientët e regresionit dhe SS shumat e
% katrorë për mbetjet.
% a është numri i komponentëve.
%
% Për një komponent: përdorni të gjitha komandat për të përfunduar.

Për i = 1: a
% Llogaritni shumën e katrorëve. Përdorni funksionin ss.
sx =;
sy =;

% Përdorni funksionin pls për të llogaritur një komponent.
= pls (x, y);

% Llogaritni mbetjet.
x = x - t * p ";
y = y - t * q ";

% Ruani vektorët në matrica.
W =;
T =;
U =;
Q =;
P =;
fundi;

% Llogaritni koeficientët e regresionit pas ciklit.
B = W * inv (P "* W) * Q";

% Shtoni SS-në përfundimtare të mbetur në shumën e vektorëve katrorë.
sx =;
sy =;

% Bëni një matricë të vektorëve ss për X dhe Y.
SS =;

% Llogaritni fraksionin e SS të përdorur.
= madhësia (SS);
tt = (SS * diag (SS (1,:). ^ (- 1)) - ato (a, b)) * (-1)

% Fundi i plsr

funksion = ss (x)
% SS: llogarit shumën e katrorëve të një matrice X.
%

ss = shuma (shuma (x. * x));
% Fundi i ss

Rreth llogaritjes së PLS2 me një shtesë KimiometriaShtoje ne të përshkruara në manualin Metodat e projektimit në sistemin Excel.

konkluzioni

MatLab është një mjet shumë i njohur për analizën e të dhënave. Sipas sondazhit, ai përdoret nga një e treta e të gjithë studiuesve, ndërsa programi Unsrambler përdoret nga vetëm 16% e shkencëtarëve. Disavantazhi kryesor i MatLab është ai cmim i larte... Përveç kësaj, MatLab është i mirë për llogaritjet rutinë. Mungesa e interaktivitetit e bën atë të papërshtatshëm gjatë kryerjes së kërkimit, llogaritjeve kërkimore për grupe të reja, të paeksploruara të të dhënave.

Artikujt kryesorë të lidhur