Paano magsulat ng mga function sa MATLAB. g=9.81; %pagpabilis ng grabidad. Pagpasok ng mga kumplikadong numero

Mga script

Kasama ng pagtatrabaho sa command line, may isa pang paraan upang magsagawa ng mga utos. Ito ay pagsulat ng mga programa.

Ang script ay isang sequence ng MATLAB command na nakasulat sa isang file na may extension na ".m". Ito ay mga regular na text file. Maaari mong gamitin ang anumang text editor upang isulat ang mga ito.

Upang lumikha ng isang script, sa pangkalahatan, sapat na magkaroon ng isang regular na editor ng teksto sa kamay. Gagamitin namin ang editor na nakapaloob sa kapaligiran ng MATLAB. Gamitin ang button na Bagong Script sa kaliwang sulok sa itaas para gumawa ng bagong script. Pagkatapos i-click ang button na ito, lalabas ang isang window ng text editor (Larawan 5).

Figure 5. MATLAB code editor Gumawa tayo ng isang maliit na programa:

fprintf("Hello World!\n")

Ngayon ay kailangan mong i-save ang script na ito upang gawin ito, mag-click sa pindutang "I-save" sa kaliwang sulok sa itaas, pagkatapos ay mag-aalok ang MATLAB na i-save ito sa kasalukuyang direktoryo ("Kasalukuyang Folder"). Bigyan natin ang script ng pangalang "Example1.m" at i-save ito. Maipapayo na ang script ay i-save sa kasalukuyang direktoryo, kaya ang MATLAB ay maghahanap ng mga script na tatakbo

sa mga folder na nakalista sa internal MATLAB path variable. Kasama rin sa listahang ito ang kasalukuyang direktoryo, na ipinapakita sa kapaligiran ng MATLAB sa kanan sa isang espesyal na lumulutang na lugar. Bilang default, ang script ay ise-save sa kasalukuyang direktoryo, kaya maaari mo itong tawagan kaagad. Maaari mong patakbuhin ang script sa pamamagitan ng pagpasok ng pangalan nito (ang pangalan ng m-file kung saan ito nai-save) sa command line at pagpindot sa "Enter" o ang "Run" na buton sa editor ng code. Sa parehong mga kaso, ipinapakita ng command window ang sumusunod na output:

>> Halimbawa1 Hello World!

Tingnan natin ang isa pang halimbawa. Mayroong isang script:

x = 0:0.02:2*pi; a = 0.3;

y = a * sin(x) + b * cos(x); plot(x, y)

I-save natin ito sa file na Example2.m at patakbuhin ito. Bilang resulta, kakalkulahin at ipapakita ng MATLAB ang graph ng function na y = a sin(x)+ b cos(x).

Napansin din namin na pagkatapos isagawa ang script, ang mga variable na x, a, b at y ay lumabas sa window ng "Workspace". Upang ipaliwanag kung bakit nangyari ito, isaalang-alang ang napakahalagang konsepto sa MATLAB ng workspace.

Workspace sa MATLAB

Ang lugar ng trabaho ng sistema ng MATLAB ay ang lugar ng memorya kung saan matatagpuan ang mga variable ng system. Mayroong dalawang uri ng mga workspace sa MATLAB:

base workspace - base workspace;

function workspace - function workspace.

Ang lahat ng mga variable sa isang workspace ay umiiral sa workspace mula sa oras na idineklara ang mga ito kapag nagtatrabaho sa workspace hanggang sa tahasan silang maalis gamit ang malinaw na command o hanggang sa katapusan ng buhay ng workspace, tulad ng pagsasara ng MATLAB para sa base workspace.

Kapag inilunsad ang script, hindi ito gumagawa ng bagong workspace, ngunit gumagana sa workspace kung saan ito tinawag.

Kapag tumawag kami ng script mula sa command window, gumagana ito sa base workspace, kaya lahat ng variable na ginawa namin bago tawagan ang script ay available dito. Gayundin, kung lumikha ang script ng higit pang mga variable, mananatiling available ang mga ito pagkatapos

pagkumpleto nito.

Mga komento

Ito ay itinuturing na magandang anyo kapag nagsusulat ng software code upang magsulat ng mga komento sa code na iyong isusulat. Ang mga komento ay hindi nakakaapekto sa pagpapatakbo ng programa sa anumang paraan at nagsisilbing magbigay ng karagdagang impormasyon. Makakatulong ang mga komento sa ibang tao na maunawaan ang iyong algorithm at makakatulong sa iyong matandaan ang esensya ng iyong isinulat pagkatapos ng ilang yugto ng panahon kung kailan nakalimutan mo na ang iyong na-program. Ginagamit ng MATLAB ang simbolo na "%" upang ipahiwatig ang simula ng isang komento.

% Pagbuo ng Uniformly Distributed Random Numbers

% Kinakalkula ang mathematical na inaasahan ng mga nabuong numero

% Pagpapakita ng data sa isang graph

% 50 random na numero

% Bumuo at magtalaga ng vector ng random

mga halaga ng variable r

% Ipakita ang nabuong vector sa graph

% Gumuhit ng linya

sa pamamagitan ng (0, m) at (n, m)

% Kalkulahin ang arithmetic mean ng mga halaga

vector r

plot(,)

pamagat("Mean of Random Uniform Data") % Pamagat ng tsart

Mga pag-andar

Ang isa pang uri ng programa ng MATLAB ay mga function. Hindi tulad ng mga script, kapag tinawag, ang isang function ay lumilikha ng isang bagong workspace, kaya ang mga variable na idineklara sa labas ng code nito ay hindi makikita sa loob ng function. Samakatuwid, ang mga parameter ng input at output ay ginagamit upang ipaalam ang function sa panlabas na code. Tingnan natin ang pangkalahatang syntax para sa pagdedeklara ng isang function:

function = function_name(x1,...,xM) operator_1 operator_2

operator_n dulo

Ang function ay nakapaloob sa isang hiwalay na m-file.

Nagsisimula ang isang function sa keyword function na sinusundan ng square

ang mga pangalan ng output variable ay pinaghihiwalay ng mga kuwit sa panaklong. Susunod ay ang "=" sign at ang pangalan ng function. Ang pangalan ng function ay sumusunod sa parehong mga panuntunan tulad ng mga variable na pangalan. Tandaan din namin na ang pangalan ng function ay dapat tumugma sa pangalan ng file kung saan ito tinukoy. Pagkatapos ng pangalan ng function, ang mga pangalan ng mga parameter ng input ay pinaghihiwalay ng mga kuwit sa panaklong.

Ang mga sumusunod na linya ay naglalaman ng katawan ng function (anumang wastong mga expression ng MATLAB).

Nagtatapos ang function sa end keyword, gayunpaman ito ay opsyonal at maaaring tanggalin.

Tandaan din na kung ang isang function ay nagbabalik lamang ng isang parameter, hindi na ito kailangang ilakip sa mga square bracket, halimbawa:

function s = triaArea(a, b)

% pagkalkula ng lugar ng isang tamang tatsulok

% a, b - mga binti ng tatsulok

s = a * b / 2; wakas

Kung ang isang function ay hindi nagbabalik ng mga parameter, pagkatapos kaagad pagkatapos ng function na keyword ay darating ang pangalan ng function, halimbawa:

function hellowWorld()

% halimbawa ng isang function na walang input at output parameters disp("Hello world!");

Ang sumusunod na syntax ay ginagamit upang tumawag sa isang function:

Function_name(z1,...,zM)

kung saan ang k1, ..., kN ay ang mga variable kung saan isusulat ang mga halaga ng output ng function, az1,..., zM ang mga argumento ng function.

Kung ang function ay nagbabalik lamang ng isang parameter, ang mga square bracket ay maaaring tanggalin, halimbawa:

s = triaArea(1,2)

Aktwal at pormal na mga parameter ng function

Mahalagang makilala sa pagitan ng aktwal at pormal na mga parameter ng isang function:

aktwal na parameter - ang argumento na ipinasa sa function kapag ito ay tinawag;

pormal na parameter - isang argumento na tinukoy kapag nagdedeklara o tumutukoy sa isang function.

Ipaliwanag natin ang pagkakaibang ito gamit ang isang halimbawa.

Karamihan sa mga developer ay nahihirapang maunawaan ang parehong syntax at mga kakayahan nito. Ang bagay ay ang wika ay direktang nauugnay sa isang sikat na produkto ng software, ang halaga nito ay maaaring umabot sa mga kamangha-manghang halaga. Kaya, ang pangunahing tanong ay: napakahusay ba ng wikang Matlab? At maaari ba itong maging kapaki-pakinabang para sa iyo?

Paggamit

Magsimula tayo hindi sa isang karaniwang iskursiyon sa kasaysayan at isang talakayan ng mga kalamangan at kahinaan ng wika, ngunit sa kapaligiran ng software ng MATLAB/Simulink - ang tanging lugar kung saan maaaring maging kapaki-pakinabang ang bayani ng tekstong ito. Isipin lamang ang isang graphic editor kung saan maaari mong mapagtanto ang alinman sa iyong mga ideya nang hindi nagkakaroon ng ilang taon ng karanasan at nauugnay na edukasyon sa likod mo. At pagkakaroon ng isang diagram ng pakikipag-ugnayan sa pagitan ng mga tool nang isang beses, makakakuha ka ng isang mataas na kalidad na script para sa paulit-ulit na paggamit.

Ang MATLAB ay tulad ng isang editor sa mundo ng data. Ang saklaw ng aplikasyon nito ay walang katapusan na malawak: IoT, pananalapi, gamot, espasyo, automation, robotics, wireless system at marami pa. Sa pangkalahatan, mayroong halos walang limitasyong mga posibilidad para sa pagkolekta at pag-visualize ng data, pati na rin ang pagtataya, ngunit kung mayroon kang pagkakataon na bumili ng naaangkop na pakete.

Tulad ng para sa presyo, halos walang pinakamataas na limitasyon, ngunit ang mas mababang limitasyon ay nasa paligid ng $99. Upang maagaw ang napakalakas na produkto para sa medyo maliit na pera, kailangan mong maging isang estudyante sa unibersidad. At siyempre makakakuha ka ng isang medyo limitadong produkto.

Mga katangian ng wika

Ang wika ng MATLAB ay isang tool na nagbibigay ng interaksyon sa pagitan ng isang operator (kadalasan hindi kahit isang programmer) na may lahat ng magagamit na mga kakayahan para sa pagsusuri, pagkolekta at pagpapakita ng data. Ito ay may malinaw na kalamangan at kahinaan na katangian ng isang wikang naninirahan sa isang saradong ekosistema.

Mga kapintasan:

    Isang mabagal at overloaded na wika na may mga operator, command, at function, na ang pangunahing layunin ay pahusayin ang visual na perception.

    Makitid na nakatutok. Walang ibang software platform kung saan kapaki-pakinabang ang MATLAB.

    Mataas na halaga ng software. Kung ikaw ay hindi isang mag-aaral, maaari kang maghanda na walang laman ang iyong mga bulsa o tumawid sa linya ng batas. At kahit estudyante ka, disente ang presyo.

    Mababang demand. Sa kabila ng malaking interes sa MATLAB sa halos lahat ng larangan, iilan lamang ang aktwal at legal na gumagamit nito.

Mga kalamangan:

    Ang wika ay madaling matutunan at may simple at naiintindihan na syntax.

    Malaking pagkakataon. Ngunit ito ay isang bentahe ng produkto sa kabuuan.

    Ang mga madalas na pag-update, kadalasang kapansin-pansing mga positibong pagbabago ay nangyayari nang hindi bababa sa ilang beses sa isang taon.

    Pinapayagan ka ng kapaligiran ng software na i-convert ito sa "mabilis" na code sa C, C++.

Target na Audience

Siyempre, hindi lahat ay nangangailangan ng MATLAB. Sa kabila ng malawak na hanay ng mga application nito, mahirap isipin na ang karaniwang developer ng application ay mangangailangan ng kaalaman sa wikang ito. Ang MATLAB ay lubhang kapaki-pakinabang sa mga lugar na nangangailangan ng partikular na matatag na pagproseso ng data, tulad ng mga autopilot system sa mga sasakyan o aircraft avionics system.

Iyon ay, kung hindi ka gaanong isang programmer, ngunit ang isang paraan o iba pa ay nauugnay ang iyong propesyon sa pangangailangan para sa pagpoproseso ng programmatic data, kung gayon ang isang produkto ng MATLAB/Simulink na may naaangkop na wika ay maaaring lubos na gawing simple ang iyong mga pang-araw-araw na gawain.

Panitikan

Tinatapos namin ang pagsusuri ng wika, gaya ng dati, sa isang listahan ng mga literatura na pang-edukasyon. Siyempre, kasama ng mga ito ay hindi ka makakahanap ng mga libro na eksklusibo sa wika, ngunit gagawin lamang nitong mas madali ang pang-unawa sa wika:

Mayroon ka bang karanasan sa MATLAB? At alin?

Para sa mga gustong maging programmer - .

Mga tagubilin

Ang kapaligiran ng MATLAB ay may ilang mga operating mode. Ang pinakasimpleng ay ang direktang pagpasok ng mga command sa command window ( Command Window).
Kung hindi ito nakikita sa interface ng programa, kailangan mong buksan ito. Maaari mong mahanap ang command window sa pamamagitan ng menu Desktop -> Command Window.
Halimbawa, ipasok natin ang mga command na "x = ; y = sqrt(x);" sa window na ito nang sunud-sunod at pindutin ang "Enter" key ( Pumasok). Ang program ay agad na lilikha ng mga variable na X, lilikha ng variable na Y at kakalkulahin ang mga halaga nito para sa isang partikular na function, at pagkatapos ay bubuo ng graph nito.
Gamit ang "Up" at "Down" na mga keyboard arrow sa command window, maaari tayong lumipat sa pagitan ng lahat ng ipinasok na command, agad na baguhin ang mga ito kung kinakailangan, at sa pamamagitan ng pagpindot muli sa Enter ipadala ang mga ito sa kapaligiran ng MATLAB para sa pagpapatupad.
Komportable? Walang alinlangan. At ang pinakamahalaga - napakabilis. Ang lahat ng mga pagkilos na ito ay tumatagal ng ilang segundo.
Ngunit paano kung kailangan mo ng isang mas kumplikadong organisasyon ng koponan? Kung kailangan mo ng paikot na pagpapatupad ng ilang mga utos? Ang pagpasok ng mga utos nang manu-mano nang paisa-isa at pagkatapos ay maghanap sa kasaysayan sa loob ng mahabang panahon ay maaaring nakakapagod.

Upang gawing mas madali ang buhay para sa isang siyentipiko, inhinyero o mag-aaral, ang editor window ( Editor). Buksan natin ang editor window sa pamamagitan ng menu Desktop -> Editor.
Dito maaari kang lumikha ng mga bagong variable, bumuo ng mga graph, magsulat ng mga programa (mga script), lumikha ng mga bahagi para sa palitan sa iba pang mga kapaligiran, lumikha ng mga application na may user interface (GUI), at mag-edit ng mga umiiral na. Ngunit kami ay kasalukuyang interesado sa pagsulat ng isang programa na naglalaman ng mga function para sa muling paggamit sa hinaharap. Kaya pumunta tayo sa menu file at pumili Bago -> M-File.

Sa patlang ng editor magsusulat kami ng isang simpleng programa, ngunit kumplikado ito nang kaunti:

function na draw_plot(x)
y = log(x); % Itakda ang unang function
subplot(1, 2, 1), plot(x, y); % Pagbuo ng unang graph
y = sqrt(x); % Itakda ang pangalawang function
subplot(1, 2, 2), plot(x, y); % Pagbuo ng pangalawang graph

Nagdagdag kami ng pangalawang function at magpapakita ng dalawang graph sa tabi ng bawat isa. Ang tanda ng porsyento ay nagpapahiwatig ng mga komento sa MATLAB.
Huwag kalimutang i-save ang programa. Ang karaniwang extension ng file para sa Matlab program ay *.m.
Ngayon isara ang editor at ang window na may graph na ginawa namin kanina.

Bumalik sa command window.
Maaari mong i-clear ang kasaysayan ng command upang hindi kami makagambala sa hindi kinakailangang impormasyon. Upang gawin ito, mag-right-click sa field ng command input at piliin ang item sa menu ng konteksto na bubukas I-clear ang Command Window.
Mayroon pa rin kaming variable X mula sa nakaraang eksperimento; hindi namin ito binago o tinanggal. Samakatuwid, maaari kang agad na pumasok sa command window:
draw_plot(x);
Makikita mo na babasahin ng MATLAB ang aming function mula sa file at isasagawa ito, gumuhit ng isang graph.

Ang kapaligiran ng MATLAB ay may ilang mga operating mode. Ang pinakasimpleng ay ang direktang pagpasok ng mga command sa command window ( Command Window).

MATLAB Command Window

Kung hindi ito nakikita sa interface ng programa, buksan ito. Maaari mong mahanap ang command window sa pamamagitan ng menu Desktop Command Window.

Halimbawa, ipasok natin ang mga command sa window na ito nang isa-isa:

X = ; y = sqrt(x); plot(y);

at pindutin ang Enter key ( Pumasok). Ang programa ay agad na lilikha ng isang variable na X, lumikha ng isang variable na Y at kalkulahin ang mga halaga nito para sa isang naibigay na function, at pagkatapos ay bubuo ng graph nito.

Gamit ang keyboard pataas at pababang mga arrow sa command window, maaari tayong lumipat sa pagitan ng mga ipinasok na command, agad na baguhin ang mga ito, at sa pamamagitan ng pagpindot sa Pumasok ipadala sa kapaligiran ng MATLAB para sa pagpapatupad. Gamit ang kaliwa at kanang mga arrow maaari kang mag-navigate sa ipinasok na command at i-edit ito. Kung mayroong semicolon sa dulo ng command, ang resulta ay kakalkulahin, ngunit hindi ipapakita sa command window; kung hindi, ang resulta ng utos ay ipapakita kaagad. Para sa anumang function sa kapaligiran ng MATLAB mayroong detalyadong built-in na tulong. Halimbawa, upang makakuha ng tulong sa isang utos balangkas, piliin ang command na ito, i-right-click ito, at sa magbubukas na menu ng konteksto, piliin Tulong sa Pagpili o pindutin ang key F1.

Paghingi ng tulong sa mga utos ng MATLAB

Komportable? Walang alinlangan. At ang pinakamahalaga - napakabilis. Ang lahat ng mga pagkilos na ito ay tumatagal ng ilang segundo.

Ngunit paano kung kailangan mo ng isang mas kumplikadong organisasyon ng koponan? Kung kailangan mo ng paikot na pagpapatupad ng ilang mga utos? Ang pagpasok ng mga utos nang manu-mano nang paisa-isa at pagkatapos ay maghanap sa kasaysayan sa loob ng mahabang panahon ay maaaring nakakapagod.

2 Nagtatrabaho sa editor sa kapaligiran ng MATLAB

Upang gawing mas madali ang buhay para sa isang siyentipiko, inhinyero o mag-aaral, ang editor window ( Editor). Buksan natin ang editor window sa pamamagitan ng menu Desktop Editor.

Sa window ng editor, maaari kang lumikha ng mga bagong variable, bumuo ng mga graph, magsulat ng mga programa (script), lumikha ng mga bahagi para sa pagpapalitan sa iba pang mga kapaligiran, lumikha ng mga application na may user interface (GUI), at mag-edit ng mga umiiral na.

Kasalukuyan kaming interesado sa pagsulat ng isang programa na naglalaman ng mga function para muling magamit sa hinaharap. Kaya pumunta tayo sa menu file editor at piliin Bago M-File.


Ang mga M-file sa kapaligiran ng MATLAB ay mga file na naglalaman ng teksto ng programa (mga script) o mga function na tinukoy ng gumagamit.

Sumulat tayo ng isang simpleng function sa editor draw_plot:

function na draw_plot(x)% Itakda ang unang function: y = log(x); % Binubuo namin ang unang graph: subplot(1, 2, 1), plot(x, y); % Itakda ang pangalawang function: y = sqrt(x); % Binubuo namin ang pangalawang graph: subplot(1, 2, 2), plot(x, y);

Bumalik sa command window.

Maaari mong i-clear ang kasaysayan ng command upang hindi kami makagambala sa hindi kinakailangang impormasyon. Upang gawin ito, mag-right-click sa field ng command input at piliin ang item sa menu ng konteksto na bubukas I-clear ang Command Window.

Mayroon pa rin kaming variable X mula sa nakaraang eksperimento; hindi namin ito binago o tinanggal. Samakatuwid, maaari kang agad na pumasok sa command window:

Draw_plot(x);

Makikita mo na babasahin ng MATLAB ang aming function mula sa file at isasagawa ito, gumuhit ng isang graph.


Kung ang MATLAB ay nag-isyu ng mensahe kapag nagpapatupad ng isang programa, Hindi natukoy na function o paraan na "draw_plot" para sa mga input argument na may uri na "double".(ibig sabihin, tinatawag ang isang hindi kilalang function), i-click ang berdeng arrow button sa window ng editor ( Takbo) o sa pamamagitan ng menu ng editor: I-debug Patakbuhin ang draw_plot.m. Iuulat ng MATLAB na ang direktoryo na naglalaman ng aming file ng programa (draw_plot.m) ay hindi ang gumaganang direktoryo. I-click ang button sa dialog box Idagdag sa Path upang maidagdag ng MATLAB ang direktoryo sa gumaganang landas at magamit ang aming M-file. Pagkatapos nito, dapat magsimula nang normal ang programa.

). Kabilang sa mga tool sa pangkalahatang layunin na ginagamit sa chemometrics, ang MatLab package ay sumasakop sa isang espesyal na lugar. Ang kanyang kasikatan ay hindi karaniwang mataas. Ito ay dahil ang MatLab ay makapangyarihan at maraming nalalaman para sa pagproseso ng multidimensional na data. Ang mismong istraktura ng pakete ay ginagawa itong isang maginhawang tool para sa pagsasagawa ng mga kalkulasyon ng matrix. Ang hanay ng mga problema na maaaring pag-aralan gamit ang MatLab ay kinabibilangan ng: matrix analysis, signal at image processing, neural network at marami pang iba. Ang MatLab ay isang mataas na antas, open-source na wika na nagbibigay-daan sa mga advanced na user na maunawaan ang mga naka-program na algorithm. Pinapadali ng isang simpleng built-in na programming language ang paggawa ng sarili mong mga algorithm. Sa loob ng maraming taon ng paggamit ng MatLab, isang malaking bilang ng mga function at ToolBoxes (mga pakete ng mga espesyal na tool) ang nalikha. Ang pinakasikat ay ang PLS ToolBox package mula sa Eigenvector Research, Inc.

1. Pangunahing impormasyon

1.1. kapaligiran sa pagtatrabaho ng MatLab

Upang ilunsad ang programa, i-double click ang icon.

Ang kapaligiran sa pagtatrabaho na ipinapakita sa figure ay magbubukas sa harap mo. Kapaligiran sa pagtatrabaho MatLab 6.x

Ang kapaligiran sa pagtatrabaho na ipinapakita sa figure ay magbubukas sa harap mo. Kapaligiran sa pagtatrabaho bahagyang naiiba sa workspace ng mga nakaraang bersyon, mayroon itong mas maginhawang interface para sa pag-access ng maraming sumusuportang elemento

    naglalaman ng mga sumusunod na elemento:

    toolbar na may mga pindutan at drop-down na listahan; window na may mga tab na Launch Pad at Workspace

    , kung saan maaari mong ma-access ang iba't ibang mga module ng ToolBox at mga nilalaman ng workbench; naka-tab na bintana Kasaysayan ng Utos At Kasalukuyang Direktoryo

    , nilayon para sa pagtingin at muling pagtawag sa mga naunang ipinasok na mga utos, pati na rin para sa pagtatakda ng kasalukuyang direktoryo;

    isang command window na naglalaman ng "input" prompt at isang kumikislap na vertical cursor;

status bar. Kapaligiran sa pagtatrabaho Kung nasa kapaligiran ng trabaho Kung ang ilang mga window na ipinapakita sa figure ay nawawala, dapat mong piliin ang naaangkop na mga item sa View menu: Command Window

Ang mga utos ay dapat i-type sa window ng command. Ang simbolo » , na nagpapahiwatig ng command line prompt, ay hindi kailangang i-type. Upang tingnan ang lugar ng trabaho, maginhawang gamitin ang mga scroll bar o ang Home, End key upang ilipat pakaliwa o pakanan, at PageUp, PageDown upang ilipat pataas o pababa. Kung biglang, pagkatapos lumipat sa lugar ng trabaho ng command window, nawala ang command line na may kumikislap na cursor, pindutin lamang ang Enter.

Mahalagang tandaan na ang pag-type ng anumang command o expression ay dapat magtapos sa pagpindot sa Enter upang maisagawa ng MatLab ang utos na iyon o suriin ang expression.

1.2. Mga simpleng kalkulasyon

I-type ang 1+2 sa command line at pindutin ang Enter. Bilang resulta, ipinapakita ng MatLab command window ang sumusunod:

kanin. 2 Graphical na representasyon ng pangunahing bahagi ng pagsusuri

Ano ang ginawa ng MatLab program? Una, kinakalkula niya ang kabuuan na 1+2, pagkatapos ay isinulat ang resulta sa isang espesyal na variable ans at ipinakita ang halaga nito, katumbas ng 3, sa command window. Sa ibaba ng tugon ay isang command line na may kumikislap na cursor, na nagpapahiwatig na ang MatLab ay handa na para sa karagdagang mga kalkulasyon. Pumasok Maaari kang mag-type ng mga bagong expression sa command line at hanapin ang kanilang mga kahulugan.

Kung kailangan mong magpatuloy sa pagtatrabaho sa nakaraang expression, halimbawa, kalkulahin ang (1+2)/4.5, kung gayon ang pinakamadaling paraan ay ang paggamit ng umiiral na resulta, na nakaimbak sa ans variable.

I-type ang ans/4.5 (ginagamit ang isang tuldok kapag naglalagay ng mga decimal) at pindutin

, ito pala

kanin. 3 Graphical na representasyon ng pangunahing bahagi ng pagsusuri

1.3. Utos ng echo

Ang pinakamadaling paraan upang i-save ang lahat ng mga variable na halaga ay ang paggamit ng opsyon na I-save ang Workspace Bilang sa menu ng File.

Bubuksan nito ang dialog box na Save Workspace Variables, kung saan dapat mong tukuyin ang direktoryo at pangalan ng file. Bilang default, iminungkahi na i-save ang file sa subdirectory ng trabaho ng pangunahing direktoryo ng MatLab. Ise-save ng program ang mga resulta ng trabaho nito sa isang file na may extension mat. Ngayon ay maaari mong isara ang MatLab. Sa susunod na sesyon ng trabaho, upang maibalik ang mga halaga ng mga variable, dapat mong buksan ang naka-save na file na ito gamit ang Open sub-item ng menu ng File. Ngayon ang lahat ng mga variable na tinukoy sa huling session ay magagamit muli. Magagamit ang mga ito sa mga bagong ipinasok na command.

1.5. Magasin May kakayahan ang MatLab na magsulat ng mga executable na command at resulta sa isang text file (magtago ng work log), na maaaring basahin o i-print mula sa isang text editor. Upang simulan ang pag-log gamitin ang command talaarawan May kakayahan ang MatLab na magsulat ng mga executable na command at resulta sa isang text file (magtago ng work log), na maaaring basahin o i-print mula sa isang text editor. Upang simulan ang pag-log gamitin ang command.

Bilang isang command argument

    dapat mong tukuyin ang pangalan ng file kung saan maiimbak ang log ng trabaho.

    Ang karagdagang mga utos na na-type at ang mga resulta ng kanilang pagpapatupad ay isusulat sa file na ito, halimbawa isang pagkakasunod-sunod ng mga utos

    nagsasagawa ng mga sumusunod na aksyon:

    binubuksan ang log sa file na examplel-1.txt;

nagsasagawa ng mga kalkulasyon;

sine-save ang lahat ng mga variable sa MAT file work-1.mat ;
sine-save ang log sa file na exampl-1.txt sa work subdirectory ng MatLab root directory at isinasara ang MatLab;
Tingnan ang mga nilalaman ng exampl-1.txt file sa ilang text editor. Ang file ay maglalaman ng sumusunod na teksto:

a1=3;
a2=2.5;

a3=a1+a2

I-save ang trabaho-1 huminto 1.6. Sistema ng tulong Ang MatLab Help window ay lilitaw pagkatapos piliin ang Help Window na opsyon mula sa Help menu o sa pamamagitan ng pag-click sa question button sa toolbar. Ang parehong operasyon ay maaaring isagawa sa pamamagitan ng pag-type ng command

helpwin

.

Upang ipakita ang mga window ng tulong para sa mga indibidwal na paksa, i-type

Tandaan na ang MatLab ay nakikilala sa pagitan ng malalaking titik at malalaking titik, kaya ang p at P ay magkaibang mga variable. Upang magpasok ng mga arrays (mga vector o matrice), ang kanilang mga elemento ay nakapaloob sa mga square bracket.

Kaya, para magpasok ng 1x3 row vector, gamitin ang sumusunod na command, kung saan ang mga elemento ng row ay pinaghihiwalay ng mga puwang o kuwit.

Kapag nagpapasok ng column vector, ang mga elemento ay pinaghihiwalay ng mga semicolon.

Halimbawa,

Maginhawang magpasok ng maliliit na matrice nang direkta mula sa command line. Sa input, ang isang matrix ay maaaring isipin bilang isang column vector, na ang bawat elemento ay isang row vector.

o ang isang matrix ay maaaring ituring bilang isang row vector, ang bawat elemento nito ay isang column vector.

2.2. Pag-access sa mga elemento

Ang pag-access sa mga elemento ng matrice ay isinasagawa gamit ang dalawang indeks - mga numero ng hilera at haligi na nakapaloob sa mga panaklong, halimbawa, ang utos na B(2,3) ay ibabalik ang elemento ng pangalawang hilera at ikatlong haligi ng matrix B. Upang pumili ng column o row mula sa isang matrix, gamitin ang column o row number ng matrix bilang isa sa mga index, at palitan ang isa pang index ng colon. Halimbawa, isulat natin ang pangalawang hilera ng matrix A sa vector z Maaari ka ring pumili ng mga bloke ng matrix gamit ang colon. Halimbawa, pumili tayo mula sa matrix P ng isang bloke na may markang kulay .

Kung kailangan mong tingnan ang mga variable ng working environment, kailangan mong i-type ang command sa command line

sino

Makikita na ang kapaligiran sa pagtatrabaho ay naglalaman ng isang scalar (p), apat na matrice (A, B, P, P1) at isang row vector (z).

2.3. Pangunahing Matrix Operations

Kapag gumagamit ng mga operasyon ng matrix, tandaan na upang magdagdag o magbawas, ang mga matrice ay dapat na magkaparehong laki, at kapag nagpaparami, ang bilang ng mga haligi ng unang matrix ay dapat na katumbas ng bilang ng mga hilera ng pangalawang matrix.

Ang pagdaragdag at pagbabawas ng mga matrice, pati na rin ang mga numero at vector, ay isinasagawa gamit ang mga plus at minus na palatandaan

at ang multiplikasyon ay minarkahan ng asterisk *.

Ipakilala natin ang isang matrix na may sukat na 3×2 Ang pag-multiply ng isang matrix sa isang numero ay ginagawa din gamit ang isang asterisk, at maaari mong i-multiply sa isang numero pareho sa kanan at sa kaliwa.

Ang pagtaas ng square matrix sa isang integer na kapangyarihan ay ginagawa gamit ang operator ^ Suriin ang iyong resulta sa pamamagitan ng pagpaparami ng mismong matrix P.

2.4. Paglikha ng mga matrice ng isang espesyal na uri Ang pagpuno ng isang hugis-parihaba na matrix na may mga zero ay ginagawa ng built-in na function

Nagbibigay ang MatLab ng kakayahang punan ang mga matrice ng mga random na numero. Ang resulta ng pag-andar rand ay isang matrix ng mga numero na pantay na ipinamamahagi sa pagitan ng zero at isa, at ang mga function randn- isang matrix ng mga numero na ibinahagi ayon sa isang normal na batas na may zero mean at unit variance.

Function dayag bumubuo ng isang dayagonal matrix mula sa isang vector, na nag-aayos ng mga elemento kasama ang dayagonal.

2.5. Mga kalkulasyon ng matrix

Naglalaman ang MatLab ng maraming iba't ibang mga function para sa pagtatrabaho sa mga matrice. Kaya, halimbawa, ang paglipat ng isang matrix ay ginagawa gamit ang isang kudlit "

Ang inverse matrix ay matatagpuan gamit ang function inv para sa mga square matrice

3. Pagsasama ng MatLab at Excel

Ang pagsasama ng MatLab at Excel ay nagbibigay-daan sa gumagamit ng Excel na ma-access ang maraming mga function ng MatLab para sa pagproseso ng data, iba't ibang mga kalkulasyon at visualization ng resulta. Ang excllink.xla add-in ay nagpapatupad ng Excel extension na ito. Ang mga espesyal na function ay tinukoy para sa komunikasyon sa pagitan ng MatLab at Excel.

3.1. Configuration ng Excel

Bago i-set up ang Excel para magtrabaho kasama ang MatLab, dapat mong tiyakin na ang Excel Link ay kasama sa naka-install na bersyon ng MatLab. Sa exclink subdirectory ng pangunahing MatLab directory o toolbox subdirectory dapat mayroong file na may excllink.xla add-in. Ilunsad ang Excel at piliin ang Add-in mula sa Tools menu. Lumilitaw ang isang dialog box na naglalaman ng impormasyon tungkol sa kasalukuyang magagamit na mga add-in. Gamit ang button na Mag-browse, tukuyin ang path sa excllink.xla file. Lumilitaw ang linya sa listahan ng mga add-on sa dialog box

Excel Link 2.0 para gamitin sa MatLab

kasama ang flag set.

3.2. Pagpapalitan ng data sa pagitan ng MatLab at Excel

Ilunsad ang Excel, suriin na ang lahat ng kinakailangang mga setting ay ginawa tulad ng inilarawan sa nakaraang seksyon (dapat sarado ang MatLab). Maglagay ng matrix sa mga cell A1 hanggang C3, gamit ang isang tuldok upang paghiwalayin ang mga decimal na lugar ayon sa kinakailangan ng Excel.

Piliin ang data ng cell sa sheet at i-click ang pindutan ng putmatrix, lalabas ang isang window ng Excel na may babala na hindi tumatakbo ang MatLab. I-click ang OK, hintaying magbukas ang MatLab.

Lumilitaw ang isang dialog box ng Excel na may linya ng pag-input upang tukuyin ang pangalan ng variable ng MatLab workbench kung saan dapat i-export ang data mula sa mga napiling Excel cell. Halimbawa, ipasok ang M at isara ang window gamit ang OK button.

Pumunta sa window ng command ng MatLab at siguraduhin na ang isang variable M ay nilikha sa workbench na naglalaman ng isang three-by-three array:

Gumawa ng ilang mga operasyon sa MatLab na may matrix M, halimbawa, baligtarin ito. inv Tumawag

Upang baligtarin ang isang matrix, tulad ng anumang iba pang utos ng MatLab, magagawa mo ito nang direkta mula sa Excel. Ang pag-click sa pindutan ng evalstring na matatagpuan sa panel ng Excel Link ay nagiging sanhi ng isang dialog box na lumitaw, sa linya ng input kung saan dapat mong i-type ang utos ng MatLab

IM=inv(M) .

Ang resulta ay katulad ng nakuha kapag isinasagawa ang utos sa kapaligiran ng MatLab.

Bumalik sa Excel, gawing kasalukuyang cell ang cell A5 at i-click ang pindutan ng getmatrix.

Ang diskarte sa itaas ay ang pinakasimpleng paraan upang makipagpalitan ng impormasyon sa pagitan ng mga application - ang pinagmulan ng data ay nakapaloob sa Excel, pagkatapos ay na-export sa MatLab, naproseso doon sa ilang paraan at ang resulta ay na-import sa Excel. Ang gumagamit ay naglilipat ng data gamit ang mga pindutan ng toolbar ng Excel Link.

Ang impormasyon ay maaaring iharap sa anyo ng isang matrix, i.e. hugis-parihaba na lugar ng worksheet. Ang mga cell na nakaayos sa isang row o column ay ini-export, ayon sa pagkakabanggit, sa MatLab row vectors at column vectors.

Ang pag-import ng mga row vector at column vector sa Excel ay nangyayari sa katulad na paraan.

4. Programming May kakayahan ang MatLab na magsulat ng mga executable na command at resulta sa isang text file (magtago ng work log), na maaaring basahin o i-print mula sa isang text editor. Upang simulan ang pag-log gamitin ang command 4.1. M-file

Ang pagtatrabaho mula sa command line ng MatLab ay nagiging mahirap kung kailangan mong magpasok ng maraming command at palitan ang mga ito nang madalas.

Pagpapanatiling isang talaarawan gamit ang isang utos at ang pagpapanatili ng kapaligiran sa trabaho ay bahagyang nagpapadali sa trabaho. Ang pinaka-maginhawang paraan upang maisagawa ang mga pangkat ng mga utos ng MatLab ay ang paggamit ng mga M-file, kung saan maaari mong i-type ang mga utos, isagawa ang mga ito nang sabay-sabay o sa mga bahagi, i-save ang mga ito sa isang file at gamitin ang mga ito sa ibang pagkakataon. Ang editor ng M-file ay idinisenyo upang gumana sa mga M-file. Sa tulong nito, maaari kang lumikha ng iyong sariling mga pag-andar at tawagan ang mga ito, kabilang ang mula sa command window. Palawakin ang menu ng File ng pangunahing window ng MatLab at sa Bagong item piliin ang sub-item na M-file. Ang bagong file ay bubukas sa M-file editor window, na ipinapakita sa figure. Mayroong dalawang uri ng M-file sa MatLab: program file (

Script M-Files

), na naglalaman ng pagkakasunod-sunod ng mga utos, at mga function ng file, (

Function na M-Files ), na naglalarawan ng mga function na tinukoy ng gumagamit. 4.2. File program

Maglagay ng mga command sa editor na humahantong sa pagbuo ng dalawang graph sa isang graphics window

Ngayon i-save ang file na pinangalanang mydemo.m sa subdirectory ng trabaho ng pangunahing direktoryo ng MatLab sa pamamagitan ng pagpili sa I-save bilang mula sa menu ng File ng editor. Para patakbuhin ang lahat ng command na nasa file, piliin ang Run mula sa Debug menu. Ang isang graphic na window ay lilitaw sa screen ), na naglalarawan ng mga function na tinukoy ng gumagamit.. Piliin gamit ang mouse habang hawak ang kaliwang button, o gamit ang mga arrow key habang pinipigilan ang key Paglipat

, ang unang apat na command at isagawa ang mga ito mula sa item na Text. Pakitandaan na isang graph lamang ang ipinakita sa window ng graphics, na naaayon sa mga executed command.

Tandaan na upang maisagawa ang ilang mga utos, piliin ang mga ito at pindutin ang F9 key.

Ang mga indibidwal na bloke ng M-file ay maaaring bigyan ng mga komento, na nilaktawan sa panahon ng pagpapatupad, ngunit maginhawa kapag nagtatrabaho sa M-file. Ang mga komento ay nagsisimula sa isang porsyento na tanda at awtomatikong na-highlight sa berde, halimbawa:

Ang pagbubukas ng isang umiiral nang M-file ay ginagawa gamit ang Open item sa menu ng File ng working environment, o ang M-file editor.

4.3. Pag-andar ng file

Ang file program na tinalakay sa itaas ay isang pagkakasunud-sunod lamang ng mga utos ng MatLab; Upang gumamit ng mga numerical na pamamaraan at kapag nagprograma ng sarili mong mga application sa MatLab, dapat ay magagawa mong lumikha ng mga function ng file na nagsasagawa ng mga kinakailangang aksyon gamit ang mga input argument at ibalik ang resulta ng aksyon sa mga output argument. Tingnan natin ang ilang simpleng halimbawa upang matulungan kang maunawaan kung paano gumana sa mga function ng file.

Ngayon ang nilikha na function ay maaaring gamitin sa parehong paraan tulad ng built-in na kasalanan, cos at iba pa. Maaaring tawagan ang sariling mga function mula sa isang file program at mula sa isa pang function ng file. Subukang magsulat ng isang function ng file sa iyong sarili na magsusukat ng mga matrice, i.e. hatiin ang bawat column sa standard deviation para sa column na iyon.

Maaari kang magsulat ng isang function file na may ilang mga input argument, na inilalagay sa isang listahan na pinaghihiwalay ng kuwit. Maaari ka ring lumikha ng mga function na nagbabalik ng maraming halaga. Upang gawin ito, ang mga output argument ay idinagdag, na pinaghihiwalay ng mga kuwit, sa listahan ng mga output argument, at ang listahan mismo ay nakapaloob sa mga square bracket.

Ang isang magandang halimbawa ay isang function na nagko-convert ng oras na tinukoy sa mga segundo sa mga oras, minuto, at segundo.

Kapag tumatawag sa mga function ng file na may maraming mga output argument, ang resulta ay dapat na nakasulat sa isang vector ng naaangkop na haba.

4.4 Paggawa ng graph

Ang MatLab ay may malawak na kakayahan para sa graphic na pagpapakita ng mga vector at matrice, pati na rin para sa paglikha ng mga komento at pag-print ng mga graph. Ilarawan natin ang ilang mahahalagang graphical function. balangkas Function

ay may iba't ibang anyo na nauugnay sa mga parameter ng input, halimbawa ang plot(y) ay lumilikha ng isang piecewise linear graph ng mga elemento ng y laban sa kanilang mga indeks. Kung ang dalawang vector ay ibinigay bilang mga argumento, ang plot(x,y) ay gagawa ng graph ng y laban sa x. ), na naglalarawan ng mga function na tinukoy ng gumagamit.

Halimbawa, upang i-plot ang sin function sa hanay mula 0 hanggang 2π, gawin ang sumusunod

Ang programa ay bumuo ng isang dependence graph, na ipinapakita sa window Awtomatikong nagtatalaga ang MatLab ng ibang kulay sa bawat plot (maliban kung gagawin ito ng user), na nagbibigay-daan sa iyong makilala sa pagitan ng mga set ng data. Koponan hawakan mo nagbibigay-daan sa iyo na magdagdag ng mga curve sa isang umiiral na graph. Function

subplot

nagbibigay-daan sa iyo na magpakita ng maramihang mga graph sa isang window 4.5 Pag-print ng mga graph Ang item na I-print sa menu ng File at ang command 4.5 Pag-print ng mga graph print

i-print ang MatLab graphics. Ang menu ng Print ay naglalabas ng dialog box na nagbibigay-daan sa iyong pumili ng mga karaniwang karaniwang opsyon sa pag-print. Koponan

nagbibigay ng higit na kakayahang umangkop sa output at nagbibigay-daan sa kontrol sa pag-print mula sa mga M-file.

5.1. Pagsentro at pag-scale

Kadalasan sa panahon ng pagsusuri, kinakailangan na baguhin ang orihinal na data. Ang pinakakaraniwang ginagamit na paraan para sa pagbabago ng data ay ang pagsentro at pag-scale sa bawat variable sa pamamagitan ng standard deviation nito. Ang function code para sa pagsentro ng matrix ay ibinigay. Samakatuwid, sa ibaba ay ipinapakita lamang ang code ng function na kaliskis datos. Mangyaring tandaan na ang orihinal na matrix ay dapat na nakasentro

function Xs = scaling(X)
% scaling: ang output matrix ay Xs
Dapat nakasentro ang % matrix X

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

%end ng scaling

5.2. SVD/PCA

Ang pinakasikat na paraan ng compression ng data sa multivariate analysis ay ang principal component analysis (PCA). Mula sa isang mathematical point of view, ang PCA ay isang decomposition ng orihinal na matrix X, ibig sabihin. representasyon nito bilang produkto ng dalawang matrice Kasaysayan ng Utos T

X = P TP t+

E representasyon nito bilang produkto ng dalawang matrice Matrix

ay tinatawag na isang matrix ng mga marka, ang matrix ay tinatawag na isang matrix ng mga nalalabi. representasyon nito bilang produkto ng dalawang matrice Kasaysayan ng Utos T Ang pinakasimpleng paraan upang mahanap ang mga matrice - gumamit ng SVD decomposition sa pamamagitan ng karaniwang MatLab function na tinatawag .

svd

function = pcasvd(X)
Svd(X);
T = U * D;

P=V;

%end ng pcasvd

5.3 PCA/NIPALS X Upang bumuo ng mga account at pag-load ng PCA, ginagamit ang paulit-ulit na algorithm na NIPALS, na kinakalkula ang isang bahagi sa bawat hakbang. Una ang orihinal na matrix t+ 0 , ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix a

=0. 2. Susunod, inilapat ang sumusunod na algorithm. t =0. p t+t = / =0. p =0. 3. Susunod, inilapat ang sumusunod na algorithm. = Susunod, inilapat ang sumusunod na algorithm. / (Susunod, inilapat ang sumusunod na algorithm. p Susunod, inilapat ang sumusunod na algorithm. t =0. = t+t = Susunod, inilapat ang sumusunod na algorithm. / Susunod, inilapat ang sumusunod na algorithm. p Susunod, inilapat ang sumusunod na algorithm. a

) ½ 4. ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix 5. Suriin ang convergence, kung hindi, pagkatapos ay pumunta sa 2 =0.t ===0. Pagkatapos kalkulahin ang susunod ( Susunod, inilapat ang sumusunod na algorithm.t ==Susunod, inilapat ang sumusunod na algorithm. t+ ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix+1 = t+t ==0. Susunod, inilapat ang sumusunod na algorithm. ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix-th) mga bahagi, ipinapalagay namin ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix+1.

At X.

sa

Ang code para sa NIPALS algorithm ay maaaring isulat ng mga mambabasa mismo sa manwal na ito, ang mga may-akda ay nagpapakita ng kanilang sariling bersyon. Kapag kinakalkula ang PCA, maaari mong ipasok ang bilang ng mga pangunahing bahagi (variable numberPC).
Kung hindi mo alam kung gaano karaming mga sangkap ang kailangan, dapat mong isulat ang = pcanipals (X) sa command line at pagkatapos ay itatakda ng programa ang bilang ng mga bahagi na katumbas ng pinakamaliit na sukat ng orihinal na matrix

function = pcanipals(X, numberPC)
% pagkalkula ng bilang ng mga bahagi
= laki(X); P=; T=;< X_c
Kung lenfth(numberPC) > 0
pc = numberPC(1);
elseif (haba(numberPC) == 0) at X_r
pc = X_r;

iba pa
pc = X_c;
wakas;

para sa 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;
Habang d - d0 > 0.0001;

P1 = (T1" * X/(T1" * T1)); P1 = P1/norm(P1); T1 = X * P1; d0 = T1"*T1;
Habang d - d0 > 0.0001;

Kung paano kalkulahin ang PCA gamit ang Chemometrics add-on ay inilarawan sa tutorial

5.4PLS1

Ang pinakasikat na paraan para sa multivariate calibration ay ang projection to latent structures (PLS) method. Ang pamamaraang ito ay nagsasangkot ng sabay-sabay na agnas ng predictor matrix X at mga matrice ng tugon Y:

X=P t+ t+ Y=UQ t+ F representasyon nito bilang produkto ng dalawang matrice=XW(T p W) –1

Ang projection ay itinayo nang tuluy-tuloy - upang ma-maximize ang ugnayan sa pagitan ng kaukulang mga vector X-mga account =0.t = Kasaysayan ng Utos Y-mga account ut =. Y Kung ang data block may kasamang maraming tugon (i.e. K >1), dalawang projection ng paunang data ang maaaring gawin – PLS1 at PLS2. Sa unang kaso, para sa bawat isa sa mga tugon y k representasyon nito bilang produkto ng dalawang matrice (ang sarili nitong projection subspace ay itinayo. Kasabay nito, ang mga bayarin U T (W, ) at mga load Q

) depende sa kung aling tugon ang ginamit. Ang pamamaraang ito ay tinatawag na PLS1. X Pagkatapos kalkulahin ang susunod ( Y Para sa paraan ng PLS2, isang projection space lang ang binuo, na karaniwan sa lahat ng mga tugon.

Ang isang detalyadong paglalarawan ng paraan ng PLS ay ibinibigay sa aklat na ito Upang bumuo ng mga PLS1 na account at pag-load, isang paulit-ulit na algorithm ang ginagamit. Una ang orihinal na matrices
sentro

= mc(X); t+= mc(Y); at nagiging matrix sila 0 , ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix 0 at vector

1. f t at nagiging matrix silat ==0. Pagkatapos ay inilapat sa kanila ang sumusunod na algorithm t+ ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix 2. f = f / (f p f w =0. = t+t = f 4. t = =0. p at nagiging matrix silat = / =0. p =0. 5. u = tat nagiging matrix silat = / t 2 6. Susunod, inilapat ang sumusunod na algorithm. t =0. p t+t = / =0. p =0.

) ½ 4. ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix 5. Suriin ang convergence, kung hindi, pagkatapos ay pumunta sa 2 =0.t ===0. Pagkatapos kalkulahin ang susunod ( Susunod, inilapat ang sumusunod na algorithm.t ==Susunod, inilapat ang sumusunod na algorithm.) ½ 3. t+ ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix+1 = t+t ==0. Susunod, inilapat ang sumusunod na algorithm. q ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix-th) mga bahagi, ipinapalagay namin ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix+1.

. Upang makuha ang susunod na bahagi, kailangan mong kalkulahin ang mga natitira

t at ilapat ang parehong algorithm sa kanila, na pinapalitan ang index
Narito ang code para sa algorithm na ito na kinuha mula sa aklat
function = pls(x, y)
%
%PLS: kinakalkula ang isang bahagi ng PLS.

%Ang mga output vector ay w, t, u, q at p.

% Pumili ng vector mula sa y bilang panimulang vector u.
u = y(:, 1);

% Ang convergence criterion ay itinakda nang napakataas.
kri = 100;

% Ang mga utos mula rito hanggang dulo ay inuulit hanggang sa magkatagpo.
habang (kri > 1e - 10)
% Ang bawat panimulang vector u ay nai-save bilang uold.
uold = u; w = (u" * x)"; w = w/norm(w);

t = x * w; q = (t" * y)"/(t" * t);
u = y * q/(q" * q);
pc = X_r;

% Ang convergence criterion ay ang norm ng u-uold na hinati sa norm ng u.
kri = pamantayan(uold - u)/norm(u);

% Pagkatapos ng convergence, kalkulahin ang p.

p = (t" * x)"/(t" * t); %End of plsTungkol sa pagkalkula ng PLS1 gamit ang add-in Chemometrics

Idagdag In

inilarawan sa manu-manong pamamaraan ng Projection sa Excel. X Pagkatapos kalkulahin ang susunod ( Y 5.5PLS2 t+ Para sa PLS2 ang algorithm ay ang mga sumusunod. Una ang orihinal na matrices F 0 , ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix pagbabagong-anyo (hindi bababa sa - center; tingnan), at sila ay nagiging mga matrice

0 at u 2. f t u p t+ ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix 3. f = f / (f p f t =0. = t+t = f 5. t t =0. p Ft = / =0. p =0. 6. u = Ft = t/ t p t=0. Pagkatapos ay inilapat sa kanila ang sumusunod na algorithm. Susunod, inilapat ang sumusunod na algorithm. t =0. p t+t = / =0. p =0.

) ½ 4. ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix 1. Piliin ang inisyal na vector =0.t ===0., Susunod, inilapat ang sumusunod na algorithm.t ==7. Suriin ang convergence, kung hindi, pagkatapos ay pumunta sa 2 8.t ==f, ut ==u Pagkatapos kalkulahin ang susunod ( t oh) kailangang ilagay ang mga bahagi ng PLS2: t) ½ 3. t+ ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix+1 = t+t =p, w a = Ft = +1 = F ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrixtp t at ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix-th) mga bahagi, ipinapalagay namin ay binago (sa pinakamababa - nakasentro; tingnan) at nagiging matrix+1.

Narito ang code, na hiniram din mula sa aklat.

function = plsr(x, y, a)
% PLS: kinakalkula ang isang bahagi ng PLS.
% Ang mga output matrice ay W, T, U, Q at P.
Ang % B ay naglalaman ng mga coefficient ng regression at SS ang mga kabuuan ng
% parisukat para sa mga nalalabi.
Ang % a ay ang mga bilang ng mga bahagi.
%
% Para sa isang bahagi: gamitin ang lahat ng mga utos upang tapusin.

Para sa i=1:a
% Kalkulahin ang kabuuan ng mga parisukat. Gamitin ang function na ss.
sx = ;
sy = ;

% Gamitin ang function pls upang kalkulahin ang isang bahagi.
= pls(x, y);

% Kalkulahin ang mga nalalabi.
x = x - t * p";
y = y - t * q";

% I-save ang mga vector sa matrice.
W = ;
T = ;
U = ;
Q = ;
P = ;
pc = X_r;

% Kalkulahin ang mga coefficient ng regression pagkatapos ng loop.
B=W*inv(P"*W)*Q";

% Idagdag ang huling natitirang SS sa kabuuan ng mga square vector.
sx=;
sy=;

% Gumawa ng matrix ng ss vectors para sa X at Y.
SS = ;

Kalkulahin ang fraction ng SS na ginamit.
= laki(SS);
tt = (SS * diag(SS(1,:).^(-1)) - isa(a, b)) * (-1)

%End of plsr

function = ss(x)
%SS: kinakalkula ang kabuuan ng mga parisukat ng isang matrix X.
%

ss=sum(sum(x. * x));
%Pagtatapos ng ss

Tungkol sa pagkalkula ng PLS2 gamit ang add-in %End of plsTungkol sa pagkalkula ng PLS1 gamit ang add-in Chemometrics

Konklusyon

Ang MatLab ay isang napaka-tanyag na tool para sa pagsusuri ng data. Ayon sa survey, hanggang sa ikatlong bahagi ng lahat ng mga mananaliksik ay gumagamit nito, habang ang Unsrambler program ay ginagamit lamang ng 16% ng mga siyentipiko.



Ang pangunahing kawalan ng MatLab ay ang mataas na presyo nito. Bilang karagdagan, ang MatLab ay mabuti para sa mga karaniwang kalkulasyon. Ang kakulangan ng interaktibidad ay ginagawang hindi maginhawa kapag nagsasagawa ng paghahanap, mga kalkulasyon ng pananaliksik para sa mga bago, hindi pa na-explore na set ng data.Nakaraang artikulo
Ina-update ang firmware para sa mga Samsung Galaxy smartphone Naghahanda para sa firmwareSusunod na artikulo